ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)

Bash – Цикл until

Bash - Цикл until Loop

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

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

Эта статья объясняет основы цикла в Bash.

 

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

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

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

Пример цикла until в Вash

Следующий скрипт может быть полезен, если у вашего хоста git время простоя, и вместо того, чтобы вручную вводить git pull несколько раз, пока хост не подключится, вы можете запустить скрипт один раз. Он будет пытаться вытащить хранилище, пока он не будет успешно извлечен.

#!/bin/bash

until git pull &> /dev/null
do
    echo "Ожидание хоста git ..."
    sleep 1
done

echo -e "\nРепозиторий git извлечен."

 

Скрипт напечатает «Ожидание хоста git …» и будет спать в течение одной секунды, пока хост git не выйдет в сеть. После извлечения хранилища будет напечатано «Репозиторий git извлечен».

Ожидание хоста git ...
Ожидание хоста git ...
Ожидание хоста git ...

Репозиторий git извлечен.

Заключение

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

Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.

Exit mobile version