Bash until循环

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循环