Цикл until Bash
Цикл until Bash
Bash until Loop
В этом руководстве раскрыты основы цикла until в Bash.

Циклы являются одним из фундаментальных понятий языков программирования. Циклы удобны, когда вы хотите запускать серию команд снова и снова, пока не будет выполнено определенное условие.
В языках сценариев, таких как Bash, циклы полезны для автоматизации повторяющихся задач. В скриптах Bash есть три базовых конструкции for
, while
и until
цикл.
Bash цикл until
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
Используйте break
и continue
оператор для управления выполнением цикла.
Пример цикла 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 host…» и в sleep
течение одной секунды, пока git host не выйдет в сеть. После извлечения репозитория будет напечатано «Репозиторий 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
.