Как использовать Break and Continue в Bash в Linux

12 set 2022 2 min di lettura
Как использовать Break and Continue в Bash в Linux
Indice dei contenuti

Введение

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

В Bash операторы break и continue позволяют управлять выполнением цикла. (петля)

Заявление о разрыве Bash

Оператор break завершает текущий цикл и передает управление программе команде, следующей за прерванным циклом. Он используется для выхода из цикла for, while, until или цикла select. Синтаксис оператора break имеет следующий вид:

break [n]

[n] является необязательным аргументом и должен быть больше или равен 1. Когда [n] используется, завершается n-й цикл закрытия. break 1 эквивалентно break.

Чтобы лучше понять, как использовать оператор break, давайте рассмотрим следующие примеры.

В следующем скрипте выполнение цикла while будет прервано, когда текущий итерируемый элемент равен 2:

i=0

 while [[ $i -lt 5 ]]
 do
 echo "Number: $i"
 ((i++))
 if [[ $i -eq 2 ]]; then
 break
 fi
 done

 echo 'All Done!'
Number: 0
 Number: 1
 All Done!

Вот пример использования оператора break внутри вложенных циклов for.

Когда аргумент [n] не указан, break завершает самый внутренний закрывающий цикл. Внешние петли не провязаны:

for i in {1..3}; do
 for j in {1..3}; do
 if [[ $j -eq 2 ]]; then
 break
 fi
 echo "j: $j"
 done
 echo "i: $i"
 done

 echo 'All Done!'
j: 1
 i: 1
 j: 1
 i: 2
 j: 1
 i: 3
 All Done!

Если вы хотите выйти из внешней цепи, используйте break 2. Аргумент 2 указывает, что break завершает второй цикл закрытия:

for i in {1..3}; do
 for j in {1..3}; do
 if [[ $j -eq 2 ]]; then
 break 2
 fi
 echo "j: $j"
 done
 echo "i: $i"
 done

 echo 'All Done!'
j: 1
 All Done!

Непрерывная декларация Bash

Оператор continue пропускает оставшиеся команды в теле цикла, охватывающего текущую итерацию, и передает управление программе следующей итерации цикла.

Синтаксис оператора continue следующий:

continue [n]

Аргумент [n] является необязательным и может быть больше или равен 1. Когда задан [n], возобновляется n-й охватывающий цикл. continue 1 эквивалентно continue.

В приведенном ниже примере, как только текущая итерируемая статья будет равна 2, оператор continue continue выполнение вернуться к началу цикла и продолжится со следующей итерации.

i=0

 while [[ $i -lt 5 ]]; do
 ((i++))
 if [[ "$i" == '2' ]]; then
 continue
 fi
 echo "Number: $i"
 done

 echo 'All Done!'
Number: 1
 Number: 3
 Number: 4
 Number: 5
 All Done!

Следующий скрипт выводит числа от 1 до 50, которые делятся на 9.

Если число не делится на 9, оператор continue пропускает команду echo и передает управление следующей итерации цикла.

for i in {1..50}; do
 if [[ $(( $i % 9 )) -ne 0 ]]; then
 continue
 fi
 echo "Divisible by 9: $i"
 done
Divisible by 9: 9
 Divisible by 9: 18
 Divisible by 9: 27
 Divisible by 9: 36
 Divisible by 9: 45

Вывод

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

Оператор break используется для выхода из текущего цикла. Оператор continue используется для выхода из текущей итерации цикла и запуска следующей итерации.

Buy me a coffeeBuy me a coffee

Supportaci se ti piacciono i nostri contenuti. Grazie.

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.