Bash脚本 – 如果,elif,else语句问题
我似乎无法弄清楚下面这个if
语句与elif
有关的问题。 请记住, printf
还在开发中,我只是还没有在声明中对它进行testing,所以很可能是错误的。
我得到的错误是:
./timezone_string.sh: line 14: syntax error near unexpected token `then' ./timezone_string.sh: line 14: `then'
声明就是这样。
if [ "$seconds" -eq 0 ];then $timezone_string="Z" elif[ "$seconds" -gt 0 ] then $timezone_string=`printf "%02d:%02d" $seconds/3600 ($seconds/60)%60` else echo "Unknown parameter" fi
elif
和[
:之间缺less一个空格
elif[ "$seconds" -gt 0 ]
应该
elif [ "$seconds" -gt 0 ]
正如我看到这个问题得到了很多意见,指出遵循的语法是很重要的:
if [ conditions ] # ^ ^ ^
这意味着在括号周围需要空格。否则,它将不起作用。 这是因为[
本身就是一个命令。
你的脚本有一些语法问题。 这是一个固定的版本:
#!/bin/bash if [ "$seconds" -eq 0 ]; then timezone_string="Z" elif [ "$seconds" -gt 0 ]; then timezone_string=$(printf "%02d:%02d" $((seconds/3600)) $(((seconds / 60) % 60))) else echo "Unkown parameter" fi
[
是一个命令。 它必须用前面的语句中的空格分隔:
elif [