BASH脚本获取语法错误

时间:2016-09-11 03:54:44

标签: bash unix

下面是bash脚本

脚本返回的b值为0或1.

 b=`tail -l /apps_data_01/mc_migs/inbound/logs/fp.syslog | awk c=$7} {print $c}


if ((!"$b" eq "0"));then

fi
if (($b==0));then

fi

错误:

  

((:!eq 0:表达式中的语法错误(错误标记为“0”)

     

((:== 0:语法错误:操作数预期(错误标记为“== 0”)

2 个答案:

答案 0 :(得分:3)

正确的语法如下:

b=0
if [[ ! "$b" == "0" ]];then
echo "Not EQ"
fi
if [[ $b == 0 ]];then
echo "EQ"
fi

请注意[[和空格。

使用[[ ... ]]测试构造而不是[ ... ]可以防止脚本中的许多逻辑错误。例如,&&, ||, <, and >运算符在[[ ]]测试中工作,尽管在[ ]结构中给出了错误。使用它们是一个很好的做法

答案 1 :(得分:-1)

bash使用[]括起if语句的条件。此外,您需要在==运算符之前和之后使用空格。有关bash脚本中if语法的详细信息,请参阅http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_07_01.html

请注意,您可以使用else来避免重复比较。