Skip to main content

Как написать Bash WHILE-Loops

Bash скрипты 30. Оператор цикла – WHILE. (Июнь 2026)

Bash скрипты 30. Оператор цикла – WHILE. (Июнь 2026)
Anonim

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

Файл сценария - это просто текстовый файл, обычно с расширением файла .SH, который содержит последовательность инструкций, которые также могут выполняться из командной строки (оболочки).

Хотя примеры цикла

Ниже приведен пример цикла while. При выполнении этот файл сценария будет печатать цифры с 1 по 9 на экране. Оператор while дает вам больше гибкости для указания условия завершения, чем for-loop.

Например, вы можете сделать предыдущий скрипт бесконечным циклом, опуская инструкцию increment "((count ++))":

Оператор «sleep 1» приостанавливает выполнение в течение 1 секунды на каждой итерации. Используйте комбинацию клавиш Ctrl + C для завершения процесса.

Вы также можете создать бесконечный цикл, поставив двоеточие в качестве условия:

Чтобы использовать несколько условий в цикле while, вы должны использовать двойную квадратную скобку:

В этом скрипте переменная «done» инициализируется до 0 и затем устанавливается в 1, когда счет достигает 5. Условие цикла указывает, что цикл while будет продолжаться до тех пор, пока «count» будет меньше девяти, а «done» равен до нуля. Поэтому петли выходят, когда счетчик равен 5.

«&&» означает логические «и» и «||», означает логический "или".

Альтернативным обозначением для конъюнкций «и» и «или» в условиях является «-a» и «-o» с одиночными квадратными скобками. Приведенное выше условие:

… можно было бы переписать как:

Чтение текстового файла обычно выполняется с помощью цикла while. В следующем примере сценарий bash считывает содержимое строки за строкой файла с именем «inventory.txt:»

Первая строка присваивает имя входного файла переменной «ФАЙЛ». Вторая строка сохраняет «стандартный ввод» в дескрипторе файла «6» (это может быть любое значение от 3 до 9). Это делается для того, чтобы «стандартный ввод» можно было восстановить в дескрипторе файла «0» в конце скрипта (см. Инструкцию «exec 0». В третьей строке входной файл присваивается файловому дескриптору «0», который используется для стандартного ввода. Затем инструкция «читать» считывает строку из файла на каждой итерации и присваивает ее переменной «line1».

Чтобы преждевременно выйти из цикла while, вы можете использовать оператор break следующим образом:

Оператор break пропускает выполнение программы до конца while и выполняет любые последующие инструкции. В этом случае утверждение «echo Finished».

С другой стороны, оператор continue пропускает только остальную часть цикла while текущей итерации и переходит непосредственно к следующей итерации:

В этом случае оператор «continue» выполняется, когда переменная «count» достигает 5. Это означает, что последующий оператор (echo «$ count») не выполняется на этой итерации (когда значение «count» равно 5).