Прерывание Bash: Как выйти из цикла

В сценариях Bash оператор break помогает обеспечить контроль внутри циклических операторов. Вместо ожидания условия завершения оператор break помогает выйти из цикла до наступления условия завершения. Операторы цикла управления (break и continue) логически сочетаются с условными операторами, такими как if elif else, для создания особых ситуаций внутри циклов.

Это руководство научит вас эффективно использовать оператор break в циклах сценария Bash.

Оператор break в Bash

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

Оператор break в Bash

Оператор Bash break всегда применяется к циклам.

Синтаксис следующий:

Целое число необязательно, по умолчанию оно равно 1. Число определяет глубину прерывания для вложенных циклов. Поэтому, чтобы выйти из вложенного цикла for, используйте break 2.

Примеры Bash break

Приведенные ниже примеры демонстрируют выход из различных типов циклов с помощью оператора break. Примеры включают:

  • Стандартные циклы while, for и until.
  • Команда select.

Каждый приведенный ниже пример сценария Bash сопровождается пояснением.

Выход из цикла while

Используйте оператор break для выхода из цикла while при выполнении определенного условия. В следующем сценарии используется прерывание внутри цикла while:

Выход из цикла while

Каждая строка сценария выполняет следующие действия:

  • Строка 2 определяет и устанавливает переменную i в 0.
  • Строка 3 запускает цикл while. Конечным условием будет, если переменная меньше одиннадцати ($i -lt 12).
  • В строке 5 выполняется проверка с помощью оператора if. Если переменная равна двум ("$i" == 2), программа выходит из цикла while с помощью оператора Bash break в строке 8. В этом случае код переходит к строке 13. Если переменная представляет собой другое число, сценарий продолжается, как и ожидалось, в строке 10.

Выполните сценарий, чтобы увидеть результаты.

вывод терминала test2.sh

Программа перечисляет числа до 2 и завершает выполнение скрипта.

Использование break внутри циклов for

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

Код сценария for_break.sh

Когда целочисленное значение становится равным двум ($i == '2'), программа печатает сообщение и выходит из цикла for благодаря оператору break.
Вывод терминала for_break.sh

В результате выполнение скрипта завершает программу, когда переменная i достигает двух, и переходит к последней строке кода.

Выход из цикла until

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

Ниже приведен пример программы:

 

Код сценария until_break.sh

Хотя цикл until содержит условие завершения ($i -gt 10), тело цикла содержит другое условие ($i -eq 2). Поскольку второе условие наступает раньше первого, программа переходит в тело оператора if, которое содержит оператор Bash break для выхода из цикла.
вывод терминала until_break.sh

Выполнение скрипта демонстрирует, что программа завершается, когда переменная i достигает значения 2.

Использование break внутри цикла select

Команда select создает меню и ведет себя как бесконечный цикл, хотя это не одна из основных конструкций цикла. Чтобы элегантно выйти из оператора select, создайте случай, для которого программа заканчивается, и используйте break для выхода из цикла.

Приведенный ниже код демонстрирует текстовую игру по угадыванию чисел с использованием оператора select:

Использование break внутри цикла select

Код выполняет следующее:

  1. В строке 3 выводится инструктивное сообщение. Оператор select печатает это сообщение после перечисления всех вариантов и после каждого неверного предположения.
  2. Строка 5 запускает оператор select и определяет варианты как числа от 1 до 10.
  3. В строке 8 проверяется, равно ли выбранное число 2, что является правильной догадкой. Если проверка пройдена, оператор Bash break помогает выйти из цикла и завершает игру.

Для дальнейшего развития сценария попробуйте добавить оператор elif для проверки выходящих за пределы диапазона входных данных или изменить его на оператор case для рассмотрения различных ситуаций с входными данными.

Заключение

После изучения примеров из этого руководства вы знаете, как использовать оператор break для управления циклом.

Понравилась статья? Поделиться с друзьями:
Добавить комментарий