Bash case語句

2020-06-17 16:26 更新

case 語句通常用于簡化具有多種不同選擇的復雜條件語句,使 Bash 腳本更具可讀性,并更易于維護。

基礎

語法:

  1. case expression in
  2. pattern_1)
  3. statements
  4. ;;
  5. pattern_2)
  6. statements
  7. ;;
  8. pattern_3|pattern_4|pattern_5)
  9. statements
  10. ;;
  11. pattern-n)
  12. statements
  13. ;;
  14. *)
  15. statements
  16. ;;
  17. esac

注:
- 可以運用|分隔的多個模式運算符,運算符指示模式列表的終止。
- pattern) statements這樣的模式語句被稱為子句,須以;;終止。
- *用于定義默認情況下的最終模式。當用作最后一種匹配模式時,它作為默認匹配。

運作規(guī)則:

  1. case 語句擴展表達式并嘗試與每個包含的模式進行匹配。若找到匹配項,將執(zhí)行與該項連接的語句直至;;結束。
  2. 若匹配項成功,case以最后執(zhí)行的語句的退出狀態(tài)終止。
  3. 若匹配項失敗,case的退出狀態(tài)為零。
  4. 若寫入了默認的*模式,那么在匹配其他項失敗后將執(zhí)行它。

示例:

  1. #!/bin/bash
  2. echo "Which Operating System are you using?"
  3. echo "Windows, Android, Chrome, Linux, Others?"
  4. read -p "Type your OS Name:" OS
  5. case $OS in
  6. Windows|windows|window|win)
  7. echo "That's common. You should try something new."
  8. echo
  9. ;;
  10. Android|android)
  11. echo "This is my favorite. It has lots of applications."
  12. echo
  13. ;;
  14. Chrome|chrome)
  15. echo "Cool!!! It's for pro users. Amazing Choice."
  16. echo
  17. ;;
  18. Linux|linux)
  19. echo "You might be serious about security!!"
  20. echo
  21. ;;
  22. *)
  23. echo "Sounds interesting. I will try that."
  24. echo
  25. ;;
  26. esac

執(zhí)行后得到以下結果:

  1. which Operating System are you using?
  2. Windows, Android, Chrome, Linux, Others?
  3. Type your OS Name:linux
  4. You might be serious about security!!
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號