Bash until 循环系统

评论 0 浏览 0 2019-03-03

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

在Bash这样的脚本语言中, 循环对于重复性任务的自动化非常有用.在Bash脚本中,有三种基本的循环结构:for loopwhile loop ,以及until loop。

本教程解释了Bash中的until循环的基本原理。

Bash until 循环

until 循环用于执行一组给定的命令,只要给定的条件评估为false。

Bash until 循环的形式如下。

until [CONDITION]
do
  [COMMANDS]
done

在执行命令之前,要对条件进行评估。如果条件评估为假,命令就会被执行。否则,如果条件评估为真,循环将被终止,程序控制将被传递给后面的命令。

在下面的例子中,在每一次迭代中,循环打印出变量counter的当前值,并且将变量递增1。

#!/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

使用breakcontinue 语句来控制循环的执行。

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 ..." 和 sleep 一秒,直到 git 主机上线。一旦版本库被拉出,它将打印 "The git repository is pulled."。

输出

Waiting for the git host ...
Waiting for the git host ...
Waiting for the git host ...

The git repository is pulled.

总结

whileuntil 循环彼此相似。主要的区别是,只要条件评估为truewhile循环就会迭代,只要条件评估为falseuntil循环就会迭代。

如果你有任何问题或反馈意见,请随时留言。

最后更新2023-04-20
0 个评论
标签