標籤:
條件判斷式----利用 case ..... esac 判斷
case $變數名稱 in <==關鍵詞為 case ,還有變數前有錢字型大小
"第一個變數內容") <==每個變數內容建議用雙引號括起來,關鍵詞則為小括弧 )
程式段
;; <==每個類別結尾使用兩個連續的分號來處理!
"第二個變數內容")
程式段
;;
*) <==最後一個變數內容都會用 * 來代表所有其它值
不包含第一個變數內容與第二個變數內容的其它程式執行段
exit 1
;;
esac <==最終的 case 結尾!”反過來寫”思考一下!
要注意的是,這個文法以 case (實際案例之意) 為開頭,結尾自然就是將 case 的英文反過來寫!就成為 esac 囉! 不會很難背啦!
另外,每一個變數內容的程式段最後都需要兩個分號 (;;) 來代表該程式段落的結束,這挺重要的喔!
至於為何需要有 * 這個變數內容在最後呢?這是因為,如果使用者不是輸入變數內容一或二時, 我們可以告知使用者相關的資訊啊!廢話少說,案例說明
來源程式如下:
1 case $1 in 2 "hello") 3 echo "Hello,how are you?" 4 ;; 5 "") 6 echo "You MUST input parameters,ex>{$0 someword}" 7 ;; 8 *) #其實就相當於萬用字元,0~無窮多個任一字元之意! 9 echo "Usage $0 {hello}"10 ;;11 esac
用vi編輯器建立shell指令碼:
用vi編輯器編寫shell指令碼:
執行結果如下:
在上面這個 sh09-2.sh 的案例當中,如果你輸入” sh test02.sh test “來執行, 那麼螢幕上就會出現”Usage test02.sh {hello}”的字樣,告知執行者僅能夠使用 hello 喔~ 這樣的方式對於需要某些固定字串來執行的變數內容就顯的更加的方便呢! 這種方式你真的要熟悉喔!這是因為系統的很多服務的啟動 scripts 都是使用這種寫法的。
shell編程 條件判斷式----利用 case ..... esac 判斷