循环是编程语言的基本概念之一。当你想要一遍又一遍地运行一系列命令直到达到某个条件后终止退出时,循环很方便。
在诸如 Bash 之类的脚本语言中,循环对于自动执行重复性任务非常有用。在 Bash 脚本中有3个基本的循环结构,for 循环, while 循环,until 循环。
本教程解释了 Bash 中的 until 循环的基础知识。
Bash until 循环
until 循环用于当给定条件的计算结果为 false 时,重复执行给定的一组命令。
Bash until 循环采用以下形式:
until [CONDITION] do [COMMANDS] done
在执行命令之前计算条件。如果条件的计算结果为 false ,则执行命令。否则,如果条件的计算结果为 true ,则循环将终止,程序控制将传递给后面的命令。
在下面的示例中,在每次迭代时,循环打印变量的当前值并将变量 counter 递增 1。
#!/bin/bash counter=0 until [ $counter -gt 5 ] do echo Counter: $counter ((counter++)) done
只要 counter 变量的值大于 5 ,循环就会终止迭代。该脚本将生成以下输出:
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."
该脚本将打印 “Waiting for the git host …” 并睡眠一秒钟直到 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。
本文永久更新链接地址:https://www.linuxidc.com/Linux/2019-08/159854.htm