如果块内容被注释掉,则会出现Bash语法错误:语法错误接近意外令牌`fi'

时间:2012-06-03 09:10:27

标签: bash

为什么这个简单的if语句会导致语法错误?

#!/bin/bash

if [[ 1 == 1 ]] ; then
#    echo "hello"
fi

错误是

  

第5行:意外标记“fi”附近的语法错误

如果取消注释回声,它将按预期工作。

修改

谢谢,使用:修正了错误。傻傻的。 = P

#!/bin/bash

if [[ 1 == 1 ]] ; then
:#    echo "hello"
fi

1 个答案:

答案 0 :(得分:5)

正如您在man bash中看到的那样,if的正确语法是

if list; then list; [ elif list; then list; ] ... [ else list; ] fi

如果你查看list的定义,就会说

  

列表是由一个或多个管道分隔的一个或多个管道的序列   运算符;,&,&&,或││,并可选择以;,&amp ;,之一终止,   或。

这个“一个或多个”是您的示例不是有效语法的原因。