如何編寫Bash WHILE-Loops

命令,語法和示例

您可以通過將它們寫入腳本文件並運行它來執行一系列命令。

腳本文件只是一個文本文件,通常帶有.SH文件擴展名,其中包含一系列也可以從命令行( shell )執行的指令。

while循環示例

下面是一個while循環的例子。 執行時,此腳本文件將在屏幕上打印數字1至9。 while語句為您提供比for循環更多的指定終止條件的靈活性。

#!/ bin / bash count = 1 while [$ count -le 9] do echo“$ count”sleep 1((count ++))done

例如,您可以通過省略增量語句“((count ++))”使前面的腳本無限循環:

#!/ bin / bash count = 1 while [$ count -le 9] do echo“$ count”sleep 1 done

“sleep 1”語句在每次迭代中暫停執行1秒。 使用Ctrl + C 鍵盤快捷鍵結束該過程。

您也可以通過將冒號作為條件來創建無限循環:

#!/ bin / bash count = 1 while:do echo“$ count”sleep 1((count ++))done

為了在while循環中使用多個條件,您必須使用雙方括號表示法:

count [1] = 0,while [[$ count-9]] && [$ done == 0]]回顯“$ count”sleep 1((count ++))if [$ count == 5]; 那麼$完成= 1 fi完成

在這個腳本中,變量“done”被初始化為0,然後當count達到5時設置為1.循環條件指出,只要“count”小於9並且“done”相等,while循環將繼續歸零。 因此,當計數等於5時,循環退出。

“&&”表示邏輯“和”和“||” 意味著邏輯“或”。

連詞“和”和“或”在條件中的替代符號是“-a”和“-o”,單個方括號。 以上條件:

[[$ count -le 9] && [$ done == 0]]

......可以改寫為:

[$ count -le 9] -a [$ done == 0]

讀取文本文件通常使用while循環完成。 在以下示例中,bash腳本逐行讀取名為“inventory.txt:”的文件的內容

FILE = inventory.txt exec 6

第一行將輸入文件名稱分配給“FILE”變量。 第二行將“標準輸入”保存在文件描述符“6”中(可以是3到9之間的任何值)。 這樣做是為了可以在腳本末尾將“標準輸入”恢復為文件描述符“0”(請參閱“exec 0”語句)在第3行中,將輸入文件分配給文件描述符“0”,對於標準輸入,“讀取”語句然後在每次迭代時從文件中讀取一行並將其分配給“line1”變量。

為了過早地退出while循環,可以使用如下的break語句:

count = 1 done = 0 while [$ count -le 9] do echo“$ count”sleep 1((count ++))if [$ count == 5]然後break fi done echo完成

break語句將程序執行跳到end while循環並執行後面的任何語句。 在這種情況下,聲明“迴聲完成”。

另一方面,continue語句僅跳過當前迭代的while循環語句的其餘部分,並直接跳轉到下一個迭代:

count = 1 done = 0 while [$ count -le 9] do sleep 1((count ++))if [$ count == 5]然後繼續fi echo“$ count”done echo完成

在這種情況下,當變量“count”達到5時,將執行“continue”語句。這意味著後續語句(echo“$ count”)不會在此迭代中執行(當“count”的值為5時)。