ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)
Понедельник, 31 марта, 2025
Сегодня у нас 1 праздник:
Международный День Резервного Копирования (World Backup Day). Пользователи сайта социальных новостей reddit предложили сделать дату 31.03 Международным днём резервного копирования, аргументируя это тем, что никогда заранее нельзя узнать, какие сюрпризы преподнесёт 1.04

Команды break и continue. Оболочка Bash. Linux.

Linux. Оболочка Bash. Команды break и continue

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

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

 

Команда break в 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 "Номер: $i"
  ((i++))
  if [[ $i -eq 2 ]]; then
    break
  fi
done

echo 'Все Сделано!'

 

Номер: 0
Номер: 1
Все Сделано!

 

Вот пример использования команды 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 'Все Сделано!'

 

j: 1
i: 1
j: 1
i: 2
j: 1
i: 3
Все Сделано!

 

Если вы хотите выйти из внешнего цикла, используйте 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 'Все Сделано!'

 

j: 1
Все Сделано!

 

Команда continue в Bash

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

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

continue [n]

 

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

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

i=0

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

echo 'Все Сделано!'

 

Номер: 1
Номер: 3
Номер: 4
Номер: 5
Все Сделано!

 

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

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

for i in {1..50}; do
  if [[ $(( $i % 9 )) -ne 0 ]]; then
    continue
  fi
  echo "Делится на 9: $i"
done

 

Делится на 9: 9
Делится на 9: 18
Делится на 9: 27
Делится на 9: 36
Делится на 9: 45

 

Вывод

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

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

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

Exit mobile version