首頁 > 軟體

Bash 中的 until 迴圈詳解

2020-06-16 16:34:16

迴圈是程式語言的基本概念之一。當你想要一遍又一遍地執行一系列命令直到達到某個條件後終止退出時,迴圈很方便。

在諸如 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。


IT145.com E-mail:sddin#qq.com