Как использовать цикл «до тех пор» в Bash в Linux

12 set 2022 1 min di lettura
Как использовать цикл «до тех пор» в Bash в Linux
Indice dei contenuti

Введение

Циклы — одна из фундаментальных концепций языков программирования. Циклы полезны, когда вы хотите многократно выполнять серию команд, пока не будет выполнено определенное условие.

В языках сценариев, таких как Bash, циклы полезны для автоматизации повторяющихся задач. В сценариях Bash есть 3 основные конструкции цикла: цикл for, цикл while и цикл until.

В этом руководстве объясняются основы цикла «до» в Bash.

Баш до цикла

Цикл until используется для выполнения заданного набора команд до тех пор, пока данное условие оценивается как ложное.

Цикл Bash until принимает следующий вид:

until [CONDITION]
 do
 [COMMANDS]
 done

Условие оценивается перед выполнением команд. Если условие ложно, команды выполняются. В противном случае, если условие оценивается как истинное, цикл будет прерван, а управление программой будет передано следующей команде.

В следующем примере на каждой итерации цикл печатает текущее значение переменной counter и увеличивает переменную на единицу.

#!/bin/bash

 counter=0

 until [ $counter -gt 5 ]
 do
 echo Counter: $counter
 ((counter++))
 done

Цикл прокручивается до тех пор, пока переменная counter не станет больше четырех. Скрипт выдаст следующий вывод:

Counter: 0
 Counter: 1
 Counter: 2
 Counter: 3
 Counter: 4
 Counter: 5

Примеры

Следующий сценарий может быть полезен, если у хоста 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, а цикл while повторяется until тех пор, пока условие не станет false.

Buy me a coffeeBuy me a coffee

Supportaci se ti piacciono i nostri contenuti. Grazie.

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.