Как использовать цикл while в сценариях оболочки
В bash for, while и until — это три конструкции цикла. Хотя каждый цикл отличается синтаксически и функционально, его цель — перебор блока кода при вычислении определенного выражения.
Цикл Until используется для выполнения блока кода до тех пор, пока выражение не будет признано ложным. Это полная противоположность циклу while. Цикл while выполняет блок кода, пока выражение истинно, а цикл until делает обратное.
until [ expression ]
do
code block
...
...
done
Давайте разберем синтаксис.
- Чтобы запустить цикл, вам следует использовать ключевое слово Until, за которым следует выражение в одинарных или двойных фигурных скобках.
- Выражение должно оцениваться как ложное до тех пор, пока не начнется выполнение блока кода.
- Фактический блок кода находится между do и Done.
В этой короткой статье вы узнаете, как использовать цикл while в сценариях оболочки, используя следующие примеры.
Создание бесконечного цикла в скриптах
Вы можете создать бесконечный цикл, используя в качестве выражения оператор false. Когда вы пытаетесь имитировать бесконечные циклы, попробуйте использовать sleep, который будет периодически передавать скрипт.
count=0
until false
do
echo "Counter = $count"
((count++))
sleep 2
done
Создание однострочных операторов
Вы можете создавать однострочные операторы цикла. Взгляните на приведенный ниже код. Это то же самое, что и наш первый пример бесконечного цикла, но в одну строку. Здесь вам нужно использовать точку с запятой (;)
для завершения каждого оператора.
until false; do echo "Counter = $count"; ((count++)); sleep 2; done
Изменение потока с помощью оператора разрыва и продолжения
Вы можете использовать операторы Break и continue внутри цикла while. Оператор break выйдет из цикла и передаст управление следующему оператору, а оператор continue пропустит текущую итерацию и начнет следующую итерацию в цикле.
Я использую тот же пример бесконечного цикла. Здесь, когда счетчик равен пяти, оператор continue перейдет к следующей итерации, пропуская остальную часть тела цикла. Аналогично, цикл прерывается, когда счетчик равен или превышает 10.
count=0
until false
do
((count++))
if [[ $count -eq 5 ]]
then
continue
elif [[ $count -ge 10 ]]
then
break
fi
echo "Counter = $count"
done
Вот и все, что касается этой статьи. Скоро мы представим вам еще одну интересную статью «пока», тогда продолжайте читать и продолжайте поддерживать нас.