Как использовать операторы Break и Continue в сценариях оболочки
В этой статье мы рассмотрим, как использовать break и continue в сценариях bash. В bash есть три основные конструкции цикла (for, while, until). Операторы Break и continue встроены в bash и используются для изменения хода ваших циклов. Эта концепция разрыва и продолжения доступна в популярных языках программирования, таких как Python.
type -a break continue
Выйдите из цикла с помощью оператора Break.
Оператор break выйдет из цикла, и управление будет передано следующему оператору цикла. Вы можете запустить команду help, чтобы получить некоторую информацию об операторе break.
help break
Основной синтаксис разрыва.
break [n]
n is optional
Взгляните на приведенный ниже пример. Это простой цикл for, который перебирает диапазон значений от 1 до 20 с шагом 2. Условный оператор оценивает выражение, и когда оно имеет значение true($val=9), тогда он запустит оператор Break, и цикл завершится, пропуская оставшиеся итерации.
#!/usr/bin/bash
for val in {1..20..2}
do
If [[ $val -eq 9 ]]
then
break
else
echo "printing ${val}"
fi
done
Пропустить итерацию с помощью оператора continue
Что делать, если вы не хотите полностью выходить из цикла, а пропускаете блок кода при выполнении определенного условия? Это можно сделать с помощью оператора continue. Оператор continue пропустит выполнение блока кода при выполнении определенного условия и управление будет передано обратно оператору цикла для следующей итерации.
Чтобы получить доступ к справке.
help continue
Взгляните на приведенный ниже пример. Это тот же пример, который мы использовали для демонстрации оператора Break. Теперь, когда значение Val равно девяти, оператор continue пропустит все оставшиеся блоки кода и передаст управление циклу for для следующей итерации.
#!/usr/bin/bash
for val in {1..20..2}
do
If [[ $val -eq 9 ]]
then
continue
fi
echo "printing ${val}"
done
Если вы знали python, то поведение break и continue в Python такое же. Но Python предоставляет еще один оператор управления циклом, называемый pass.
Pass похож на оператор null, и интерпретатор прочитает его, но не выполнит никакой операции. Это просто приводит к отсутствию операции. Bash не предоставляет аналогичного оператора, но мы можем эмулировать это поведение, используя ключевое слово true или двоеточие(:). И true, и двоеточие встроены в оболочку и не выполняют никаких операций.
type -a : true
Взгляните на приведенный ниже пример. Когда оператор условный оценивается как true($val=9), тогда оператор true ничего не делает и цикл продолжается.
#!/usr/bin/bash
for val in {1..20..2}
do
If [[ $val -eq 9 ]]
then
true
fi
echo "printing ${val}"
done
Вот и все, что касается этой статьи. Мы будем рады услышать ваши ценные отзывы и любые советы.