我似乎无法弄清楚以下 if
语句的问题是关于 elif
和 then
. 请记住 printf
仍处于开发阶段我还没有在声明中测试它,所以很可能是错误的 .
我得到的错误是:
./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
4 回答
elif
和[
之间缺少空格:应该
正如我看到这个问题获得了很多观点,重要的是要指出要遵循的语法是:
意思是 spaces are needed around the brackets . 否则,它将无法正常工作 . 这是因为
[
本身就是一个命令 .您的脚本存在一些语法问题 . 这是一个固定版本:
[
是一个命令 . 它必须用前面语句中的空格分隔:我建议你看看bash中的条件基础知识 .
符号 "[" 是一个命令,必须在它之前有一个空格 . 如果你没有在你的elif之后给出空格,系统会将 elif[ 解释为一个特定的命令,这绝对不是你现在想要的 .
Usage:
简而言之,将代码段编辑为:
You'd be fine with no compilation errors. Your final code segment should look like this: