shell case語句為多選擇語句。可以用case語句匹配乙個值與乙個模式,如果匹配成功,執行相匹配的命令。case語句格式如下:
case 值 in
模式1)
command1
command2
...commandn
;;模式2)
command1
command2
...commandn
;;esac
case工作方式如上所示。取值後面必須為單詞in,每一模式必須以右括號結束。取值可以為變數或常數。匹配發現取值符合某一模式後,其間所有命令開始執行直至 ;;。
取值將檢測匹配的每乙個模式。一旦模式匹配,則執行完匹配模式相應命令後不再繼續其他模式。如果無一匹配模式,使用星號 * 捕獲該值,再執行後面的命令。
例:
g2_user=0
g2_userdebug=0
g2=0
case $1 in
g2_user)
g2_user=1
;;g2_userdebug)
g2_userdebug=1
;;g2) g2=1
;;*) echo "wrong param for compile module!"
echo "the param can be one of below:"
echo "g2_user;g2_userdebug;g2"
exit 1
esac
上面的指令碼會取指令碼執行時所輸入的第乙個引數的值,與每一種模式進行匹配:
輸入不同的內容,會有不同的結果,例如:
輸入 g2_user:
g2_user=1(g2_user變數被賦值1,根據變數值可做後續指令碼的處理)
輸入 g2-user:
介面echo的結果:
wrong param for compile module!
the param can be one of below:
g2_user;g2_userdebug;g2
並且指令碼異常退出! Shell流程控制之case
case value in model1 dosomething1.model2 dosomething2.dosomething3.escacase為多選擇語句,會用value與模式匹配,每個模式後面要加 表示模式結束。如果匹配成功,則執行相應的命令直至遇到 結束。value可以是變數或常數。可以...
shell流程控制之多分支case語句
1.case與if elif else 它們都是多分支條件句,不同的是,case語句只能判斷一種條件關係,而if語句可以判斷多種關係2.格式 case 變數名 in 值1 如果變數的值等於值1,則執行程式1 值2 如果變數的值等於值2,則執行程式2 如果變數的值都不是以上的值,則執行此程式 esac...
Shell流程控制語句
在linux shell程式設計中,if for while case等條件流程控制語句用的非常多,把這些學好,對提公升指令碼的功力有非常大的幫助。下面將逐個來講解具體的用法 if 表示式 if variable in array 語句1else 語句2fi 案例一,測試數字大小 bin sh nu...