shell指令碼之case語句
阿新 • • 發佈:2021-08-02
case ... esac為多選擇語句,與其他語言中的 switch ... case 語句類似,是一種多分枝選擇結構,每個 case 分支用右圓括號開始,用兩個分號;;表示 break,即執行結束,跳出整個 case ... esac 語句,esac(就是 case 反過來)作為結束標記。
語法格式:
case "變數" in 值1) 指令1... ;; 值2) 指令2... ;; *) 指令3... esac
case 工作方式如上所示,取值後面必須為單詞in,每一模式必須以右括號結束。取值可以為變數或常數,匹配發現取值符合某一模式後,其間所有命令開始執行直至;;。
取值將檢測匹配的每一個模式。一旦模式匹配,則執行完匹配模式相應命令後不再繼續其他模式。如果無一匹配模式,使用星號 * 捕獲該值,再執行後面的命令。
下面的指令碼提示輸入 1 到 4,與每一種模式進行匹配:
echo '輸入 1 到 4 之間的數字:' echo '你輸入的數字為:' read aNum case $aNum in 1) echo '你選擇了 1' ;; 2) echo '你選擇了 2' ;; 3) echo '你選擇了 3' ;; 4) echo '你選擇了 4' ;; *) echo '你沒有輸入 1 到 4 之間的數字' ;; esac