Bash基礎 條件結構case

2021-10-06 16:46:53 字數 1459 閱讀 3314

case word in[[

(] pattern [

| pattern]…) command-list ;;]…

esac

bash在執行case結構前,會對word做~擴充套件,引數擴充套件,命令擴充套件,算術擴充套件和刪除引號;對pattern做~擴充套件,引數擴充套件,命令擴充套件和算術擴充套件

command-list後的結束符可以是;; ;& ;;&,只有它們前面的command-list被執行了,這些結束符才會發生作用,決定bash對case後面的pattern和command-list的操作。

case word in

pattern1) command-list1 ;

; pattern2) command-list2 ;

;esac

如果word匹配其中乙個pattern,就從對應的command-list開始執行。後面的pattern不會再被測試,後面的命令也不會再被執行。

case word in

pattern1) command-list1 ;

& pattern2) command-list2 ;

;# ...

*) final-command-list ;

;esac

如果word匹配pattern1, 會執行command-list1,然後執行command-list2. 但由於comand-list2是由;;結尾,所以後面的pattern不會再被測試,後面的命令也不會再被執行。

case word in

pattern1) command-list1 ;;&

pattern2) command-list2 ;

; pattern3) command-list3 ;

;esac

如果word匹配pattern1, 會執行command-list1,然後會測試pattern2

如果pattern2測試通過,就執行command-list2,但由於comand-list2是由;;結尾,所以後面的pattern不會再被測試,後面的命令也不會再被執行。

如果pattern2測試沒有通過,就對pattern3測試,依次類推

case word in

pattern1) command-list1 ;

; pattern2) command-list2 ;

;esac

如果*)之前的沒有乙個pattern被匹配上,則final-command-list會被執行

case word in

pattern1 | pattern2) command-list ;

;esac

如果word匹配pattern1或pattern2,執行command-list;否則什麼都不執行且返回狀態是零。

case 條件語句

case 條件語句語法格式 case 變數 in值 1 指令1.值 2 指令2.指令3.esac 範例根據使用者輸入判斷使用者收入的是哪個數字 如果使用者輸入的是1 9的任易數字,則輸出對應輸入的數字 如果是其他數字級字元,則發回輸入不正確的提示,並退出 bin bash read p please...

bash指令碼case與函式

case語句支援的模式 a b a或者b 匹配任意長度的任意字元 匹配任意單個字元 範圍匹配 case語法格式 case 表示式 in 模式1 條件1 模式2 條件2 模式n 條件n 剩餘條件 esac bash指令碼函式 函式 function 實現可被呼叫模組 兩種返回值 1.正常返回值 函式中...

bash中case的用法

看到一些很實用的指令碼,由於之前對於bash指令碼的積累都比較離散,沒有乙個全面的了解,在這裡記錄一下 bash的case語句用法 case語句的語法規則是 case 變數名 in 模式1 命令序列1 模式2 命令序列2 預設執行的命令序列 esac 注意的是,case比較的是pattern,然後既...