Shell程式設計 case語句和迴圈語句

2021-10-07 19:25:34 字數 1535 閱讀 1128

case語句主要適用於:某個變數存在多種取值,需要對其中的每一種取值分別執行不同的命令序列。

相比if語句需要判斷多個不同的條件,case語句只是判斷乙個變數的不同取值。

語法結構:?

case $變數名 in

模式1)

命令序列1 ;;

模式2)

命令序列2 ;;

······

*) 預設命令序列

使用 case 分支語句時,幾個要注意的特點:

? case 行尾必須為單詞 「in」 ,每一模式必須以右括號 「)」 結束。

? 雙分號 「;;」 表示命令序列的結束。

? 模式字串中,可以用方括號表示乙個連續的範圍,如 「[0-9]」 ;還可以用豎槓符號 「|」 表示或,如 「a|b」。

? 最後的 「* )」 表示預設模式,其中的 * 相當於萬用字元。

使用 for 迴圈語句時,需要指定乙個變數及可能的取值列表,針對每乙個不同的取值重複執行相同的命令序列,直到變數用完退出迴圈。在這裡,「取值列表」 稱為 for語句的執行條件,其中包括多個屬性相同的物件,需要預先指定(如通訊錄,ip黑名單)。

for 迴圈語句的語法結構:

for 變數名 in 取值列表

do 命令序列

done

for 語句的操作物件為使用者指定名稱的變數,並通過 in 關鍵字為該變數預先設定了乙個取值列表,多個取值之間以空格進行分隔。位於 do ··· done 之間的命令序列稱為 「迴圈體」,其中的執行語句需要引用變數以完成相應的任務。

使用 while 迴圈語句時,可以根據特定的條件反覆執行乙個命令序列,直到該條件不再成立時為止。迴圈體內的命令序列中應包括修改測試條件的語句,以便在適當的時候使測試條件不再成立,從而結束迴圈。

while 迴圈語句的語法結構

while 條件測試操作

do 命令序列

done

while 語句的執行流程:首先判斷 whlie 後的條件測試操作結果,如果條件成立,則執行 do···done 迴圈體中的命令序列;返回 while 後再次判斷條件測試結果,如果條件仍然成立,則繼續執行迴圈體;再次返回到 while 後,判斷條件測試結果······如次迴圈,直到 while 後的條件測試結果不再成立為止,最後跳轉到 done 語句,表示迴圈結束。

使用 while 迴圈語句時,有兩個特殊的條件測試操作,即 true(真)和 false(假)。使用 true 作為條件時,表示條件永遠成立,迴圈體內的命令序列將無限執行下去,除非強制終止指令碼(或通過 exit 語句退出指令碼);反之,若使用 false 作為條件,則迴圈體將不會被執行。

這兩個特殊條件也可以用在 if 語句的條件測試中

shell程式設計 case語句

case語句格式 vi test.sh echo input read num echo the input data is num case num in 1 echo january 雙分號結束 2 echo feburary 5 echo may 每個case可以有多條命令 echo sdfd...

shell程式設計 case語句

case語句格式 vi test.sh echo input read num echo the input data is num case num in 1 echo january 雙分號結束 2 echo feburary 5 echo may 每個case可以有多條命令 echo sdfd...

shell程式設計 十一 case條件語句

一 case條件語句 1 case語句相當於 多分支 的 if elif else 條件語句 2 用於實現 系統服務啟動指令碼 的場景 語法 case 字串變數 in 值1 指令1.值2 指令2.指令3.esac jira服務 需求1 根據 使用者的輸入 判斷是否是 數字 如果使用者 輸入數字輸 出...