在Linux中,語句中的分號通常用做代碼塊標識shell
一、單行語句通常要用到分號來區分代碼塊,例如:spa
if [ "$PS1" ]; then echo test is ok; fi test is ok
該腳本或命令行中,須要兩個分號才爲正確的語句,第一個分號是then前的分號,用於標識條件塊結束,第二個分號在fi前,用於標識then塊結束,若是缺乏這兩個分號,則程序執行錯誤。.net
這裏有趣的是echo後的字符串不須要使用引號也能正確地被識別。命令行
注意:語句結尾不要分號。code
二、該代碼若寫做多行,用換行符來區分代碼塊,則無需用到分號,例如:blog
if [ "PS1" ] > then echo "test is ok" > fi test is ok
從這個例子可看出if判斷語句分if塊,then塊,fi結束標識。固然還有可能有else if塊,例如:字符串
if [ "$PS1" ] > then echo test is ok > elif [ "$PS2" ] > then echo here > fi test is ok
注意:這裏要使用elif,而不使用esle if,若使用else if,則爲不完整語句,以下面的例子不能被正確執行:get
if [ "$PS1" ] > then echo test is ok > else if [ "$PS2" ] > then echo here > else > echo "" > fi >
敲回車後,shell程序認爲句子沒有完成,繼續等待輸入。class
總結:test
若是寫成單行,須要用分號進行區分,若是寫成塊,那麼則用換行符替代了分號。
參考:
http://blog.csdn.net/hongweigg/article/details/32081235(以上內容轉自此篇文章)