1. 程式人生 > 其它 >shell指令碼之case語句

shell指令碼之case語句

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