天天看點

shell 中 if語句的文法錯誤

今天遇到一個很糾結的問題,一直搞了一下午了吧!TNND的氣死我了……

原因是我看鳥哥的linux這本書,在看到shell script的簡單文法,按照上面的文法去寫,結果有錯:嘗試了很多次都是有錯無法進行下去:很簡單的操作:export PATH

read -p "please input your choice:(Y/N)" yn

echo $yn

if [ "$yn" == "y" ]||[ "$yn" == "Y" ];

then

echo "ok,continue"

exit 0

fi

echo "I don't your choice" && exit 0

進行編譯以後就會報錯:

root@zhou:/scripts# sh sh011.sh

please input your choice:(Y/N)y

y

[: 18: y: unexpected operator

I don't your choice

這裡的錯誤,這裡我的是ubuntu的os,我的修改是這樣的:

[ "$yn" == "y" ]||[ "$yn" == "Y" ] ##[ "$yn"=="y" ]||[ "$yn"=="Y"] 中間的空格去掉後就可以運作了。

還有一種該法是:

[ "$yn" == "y" ]||[ "$yn" == "Y" ] ##[ "$yn" = "y" ]||[ "$yn" = "Y"] 把==改為=即可。

感覺這可能是os不一樣造成的結果吧,他們用到的bash,shell可能不太一樣。

繼續閱讀