Bash until迴圈


在本小節中,我們將學習如何在Bash Script中使用until迴圈語句。

當某些條件的值為真時,while迴圈是執行一組命令的絕佳選擇。有時,我們需要執行一組命令,直到條件評估為true。在這種情況下,Bash until迴圈很有用。

bash指令碼中的Bash until迴圈用於根據表示式的布林結果重複執行一組命令。僅在表示式的值為真之前執行命令集。因此當表示式的計算結果為false時,將疊代執行一組命令。當表示式首次為真時,迴圈終止。

簡而言之,until迴圈與while迴圈相似,但是概念相反。

語法

until迴圈的語法看起來幾乎類似於bash while迴圈的語法。但是兩者的功能都有很大的不同。bash until迴圈的語法可以定義為:

until [ expression ];  
do  
command1  
command2  
. . .  
. . . .   
commandN  
done

如果表示式中有多個條件,則語法如下:

until [[ expression ]];  
do  
command1  
command2  
. . .  
. . . .   
commandN  
done

下面給出了until迴圈的一些關鍵(要點):

  • 在執行命令之前檢查條件。
  • 僅在條件評估為false時才執行命令。
  • 條件評估為真後,迴圈終止。
  • 終止後,程式控制權將轉移到緊隨done關鍵字之後的命令。

while迴圈與until迴圈

  • 執行until迴圈命令,直到返回非零狀態。
  • 執行while迴圈命令,直到返回零狀態。
  • until迴圈包含至少要執行一次的屬性。

Bash until迴圈的範例

以下是bash until迴圈的一些範例,這些範例說明了不同的場景之中的應用,以幫助您了解它的用法和工作方式:

範例1. 單條件until迴圈
在此範例中,until迴圈在表示式中包含單個條件。這是until迴圈的基本範例,它將列印從1到10的一系列數位。

指令碼檔案:until-basic.sh

#!/bin/bash  
#Bash Until Loop example with a single condition  

i=1  
until [ $i -gt 10 ]  
do  
echo $i  
((i++))  
done

執行上面範例程式碼,得到以下結果:
單條件until循環

範例2. 多條件until迴圈

以下是在表示式中具有多個條件的範例。

指令碼檔案:until-basic2.sh

#!/bin/bash  
#Bash Until Loop example with multiple conditions  

max=5  
a=1  
b=0  

until [[ $a -gt $max || $b -gt $max ]];  
do  
echo "a = $a & b = $b."  
((a++))  
((b++))  
done

執行上面範例程式碼,得到以下結果:

多條件until循環