循环是编程语言的基本概念之一。当您想要反复运行一系列命令直到满足特定条件退出时,循环很方便就可以做到。
在Bash之类的脚本语言中,循环对于自动执行重复性任务非常有用。在Bash脚本中有3个基本的循环结构,for循环,while循环,until循环。
本教程解释了Bash中的until循环的基础知识。
Bash until 循环
只要给定条件的计算结果为false,until循环就执行给定的一组命令。
Bash直到循环采用以下形式:
until [CONDITION]
do
[COMMANDS]
done
在执行命令之前评估条件。如果条件的计算结果为false,则执行命令。否则,如果条件的计算结果为true,则循环将终止,程序控制将传递给后面的命令。
在下面的例子中,在每次迭代循环打印变量counter
的当前值。
#!/bin/bash
counter=0
until [ $counter -gt 5 ]
do
echo Counter: $counter
((counter++))
done
只要counter
变量的值大于4 ,循环就会迭代。该脚本将生成以下输出:
Counter: 0
Counter: 1
Counter: 2
Counter: 3
Counter: 4
Counter: 5
Bash until循环示例
如果您的git主机处于停机状态,但你想在主机处于联机状态进行git pull
合并操作,则以下脚本可能非常有用,您可以运行该脚本一次。它将尝试拉出存储库,直到它成功拉出。
#!/bin/bash
until git pull &> /dev/null
do
echo "Waiting for the git host ..."
sleep 1
done
echo -e "\nThe git repository is pulled."
该脚本将打印“等待git主机...”并睡眠一秒钟直到git主机上线。一旦存储库被合并,它将打印“git存储库已被合并。”。
Waiting for the git host ...
Waiting for the git host ...
Waiting for the git host ...
The git repository is pulled.
结论
while
和until
循环是彼此相似,主要区别在于while
循环迭代条件评估为true
。 until
循环迭代条件评估为false
。
如果您有任何问题或反馈,请随时发表评论。