Bash "continue": Как возобновить цикл

Оператор continue - это встроенная функция Bash, которая изменяет ход выполнения циклов сценария. Это понятие не является уникальным для Bash и встречается в других языках программирования.

Лучший способ понять, как работает оператор continue в Bash, - это практические примеры. В этом руководстве показано, как использовать оператор Bash continue в сценариях Bash.

Оператор Bash continue

Оператор Bash continue возобновляет следующую итерацию в цикле или циклическом операторе.

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

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

Диаграмма состояний цикла Bash continue
Используйте оператор continue в качестве оператора управления циклом. Например, оператор continue помогает завершить текущую итерацию внутри цикла при выполнении определенного условия. В зависимости от типа цикла программа возобновляется на следующей итерации или перезапускает цикл.

Примеры Bash continue

Ниже приведены примеры и объяснения работы с оператором continue в сценариях Bash.

Следующие конструкции первичного цикла демонстрируют, как работает оператор continue:

  • Цикл for продолжает выполнение на следующей итерации в сочетании с оператором continue.
  • Оператор continue перезапускает циклы while и until.

Команда select также встречается в примерах, хотя она не является первичной конструкцией цикла. Оператор select функционирует как цикл, а оператор continue работает для любой команды цикла.

Использование Bash Continue в цикле for

Используйте оператор continue внутри условного if для управления циклом for:

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

  • Строка 3 запускает условие цикла for, итерируя переменную i от 1 до 10.
  • В строке 5 проверяется значение i. Если переменная равна 9, программа выдает эхо-сообщение и перезапускает цикл на следующей итерации (строка 3).
  • Строка 10 выводит число на консоль только в том случае, если условный оператор в строке 5 равен False.

Запустите скрипт, чтобы увидеть результаты.

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

Вывод печатает все отдельные числа на консоль. Когда условие в строке 5 принимает значение True ($i == '9'), консоль выводит сообщение.

Использование Bash Continue с вложенным циклом

Оператор continue работает и со вложенными циклами. Например, используйте continue 2 для возобновления внешнего цикла:

Программа делает следующее:

  • Строка 3 запускает внешний цикл, увеличивая переменную i от 1 до 5.
  • Строка 5 запускает внутренний цикл for, увеличивая переменную j от 1 до 5 при каждом увеличении i.
  • В строке 7 проверяется, равны ли переменные i и j ($i -eq $j). Если они равны, оператор continue 2 возобновляет внешний цикл на следующей итерации. Однако, если значения разные, программа продолжает работу, как и ожидалось.

Запустите сценарий, чтобы увидеть вывод программы.

Использование Bash Continue с вложенным циклом

Каждый раз, когда два значения равны, первое число увеличивается.

Использование Bash Continue в цикле while

Ниже приведен пример сценария Bash, который использует оператор continue в цикле while:

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

  • Строка 3 определяет переменную i и устанавливает ее значение в 0.
  • Строка 5 инициирует цикл while. Конечное условие наступит, когда i станет меньше 11.
  • В строке 7 задается проверка условия с помощью оператора if. Если переменная i равна 9, программа переходит к строкам 9-11. Во всех остальных случаях код переходит к строке 13.
  • Строки 9-11 выводят сообщение на консоль, увеличивают i, а оператор continue возобновляет цикл со строки 5.
  • Строки 13 и 14 выводят переменную i на консоль и увеличивают ее.

Чтобы увидеть вывод, запустите скрипт из терминала.

Чтобы увидеть вывод, запустите скрипт из терминала.

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

Программа выводит все числа на консоль. Из-за условных операторов while и continue для числа 9 выводится другое сообщение.

Использование Bash Continue с циклом until

Комбинируйте оператор continue с циклом until и задайте условие, чтобы изменить поведение цикла при определенном значении. Например, попробуйте выполнить следующий сценарий:

Использование Bash Continue с циклом until

Код увеличивает переменную и зацикливается, пока значение не достигнет 10. Когда переменная становится равной 9, программа выводит другое сообщение. Оператор continue перезапускает цикл until и продолжает работу как обычно.

Использование Bash Continue с циклом select

Команда select - это особый случай, поскольку она не является основным циклом сценария Bash. Команда создает меню, требующее ввода пользователем. Используйте оператор continue, чтобы обеспечить другой вывод в зависимости от выбранного пользователем значения.

В качестве примера попробуйте выполнить следующий сценарий Bash:

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

код сценария bash

Сценарий состоит из следующих элементов:

  • PS3 в строке 3 - это сообщение для отображения цикла select.
  • Строка 5 определяет условие цикла, перечисляя числа от 1 до 10. Переменная i хранит введенные пользователем данные.
  • Строка 7 повторяет выбор.
  • В строке 8 выполняется проверка. Если введенное пользователем значение равно 9, программа печатает сообщение на консоль и продолжает цикл select на следующей итерации.

Чтобы выйти из программы, нажмите CTRL+C или добавьте оператор break.

Заключение

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

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