Цикл until в Bash

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

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

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

Bash until Loop

Цикл « 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 для управления выполнением цикла.

Bash until Loop Пример

Следующий скрипт может быть полезен, когда у вашего хоста 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…» и sleep одну секунду, пока хост 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 .

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

Оставьте комментарий