shell 流程控制 case語句

2022-05-17 18:33:56 字數 1079 閱讀 3593

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...