Shell分支語句case … esac教程
阿新 • • 發佈:2018-10-31
分支語句非常實用,基本上高階語言都支援分支語句(python 沒有),大多數都使用switch ... case格式,但是在Shell卻沒有switch ... case,不過別擔心,Shell是支援分支語句的,只不過使用case ... esac格式而已。二者在本質上是相同的。
一、Shell分支語句case···esac語法
case 值 in
模式1)
command1
;;
模式2)
command2
;;
*)
command3
;;
esac
說明:case後為取值,值後為關鍵字 in,接下來是匹配的各種模式,每一模式最後必須以右括號結束。
值可以為變數或常數。
模式支援正則表示式,可以用以下字元:
* 任意字串
? 任意字元
[abc] a, b, 或c三字元其中之一
[a-n] 從a到n的任一字元
| 多重選擇
匹配發現取值符合某一模式後,其間所有命令開始執行直至 ;;。
;; 與其他語言中的 break 類似,意思是不執行接下來的語句而是跳到整個 case 語句的最後。
*)與default相似,如果上面沒有匹配到的模式,則執行*)裡的內容。
二、Shell分支語句case···esac使用舉例
通過一個例子來學習下case…esac命令:
#!/bin/bash case $1 in start | begin ) echo "I am started";; stop | end ) echo "I am stopped";; *) echo "other command!";; esac
說明:這個指令碼練習的是模式匹配,模式匹配支援‘|’符,有一個條件符合就會執行命令。