循环是编程语言的基本概念之一。当您想要反复运行一系列命令直到满足特定条件退出时,循环很方便就可以做到。

在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.

结论

whileuntil循环是彼此相似,主要区别在于while循环迭代条件评估为trueuntil循环迭代条件评估为false

如果您有任何问题或反馈,请随时发表评论。