在本小节中,我们将学习如何在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
执行上面示例代码,得到以下结果:
示例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
执行上面示例代码,得到以下结果: