簡體   English   中英

BASH腳本獲取語法錯誤

[英]BASH script getting syntax error

以下是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”)

正確的語法如下:

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

請注意[[和空格。

使用[[ ... ]]測試結構而不是[ ... ]可以防止腳本中出現許多邏輯錯誤。 例如,盡管在[ ]構造中給出了錯誤,但&&, ||, <, and >運算符在[[ ]]測試中起作用。 使用它們是一個好習慣

bash使用[]括住if語句的條件。 另外,在==運算符之前和之后也需要空格。 有關bash腳本中if語法的更多詳細信息,請參見http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_07_01.html

請注意,您可以使用else來避免重復比較。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM