if then 的正確格式是什麼?
我嘗試了很多品種。
當不在程式中時,該格式是否應該在命令列上工作?
$ if [1==2] then echo "y" fi;
> ;
-bash: syntax error near unexpected token `;'
答案1
還沒有人解釋這個錯誤。
你登入了:
if [1==2] then echo "y" fi;
;
就 shell 而言,第一行是完全有效的語法。它的形式如下:
if cmd args
在本例中,cmd
源自[1==2]
glob 的擴充。是一種通配模式,它擴展到目前目錄中名稱由,或字元[1==2]
組成的檔案清單。1
=
2
例如,如果2
當前目錄中有一個檔案被調用,則變為:
如果 2 則回顯 fi;
即執行2
帶有 4 個參數的命令:2
、then
、echo
和,作為語句部分fi
中的第一個命令。if
if/then/elif/else/fi
錯誤來自;
第二行的那一秒。如果您;
在命令列中單獨輸入該錯誤訊息,則會收到相同的錯誤訊息。;
必須用於分隔命令,不能像這樣單獨使用。
答案2
bash 構造的正確形式if
是
if something; then command; fi
您似乎正在嘗試做的事情的正確形式是
if [ 2 -eq 2 ]; then echo "y"; fi;
空格在 bash 中很重要。
答案3
試試這個:
if [ 1 == 2 ]; then echo "y" ; fi
最好使用-eq
,除非您想將 1 和 2 作為字串進行比較。
有用的連結:http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_07_01.html
答案4
==
Bash 中不存在該運算子。它要么-eq
在比較數字時,要么=
在比較字串時。
if [ 1 -eq 2 ]; then echo 'y'; fi