Циклические конструкции
Bash поддерживает следующие циклические конструкции.
Обратите внимание, что в описании синтаксиса команды везде, где встречается «;», его можно заменить одним или несколькими символами новой строки.
-
until -
Синтаксис команды
until:until test-commands; do consequent-commands; done
Выполняйте consequent-commands, пока test-commands не завершится с кодом, отличным от нуля. Возвращаемый статус — это код завершения последней команды, выполненной в consequent-commands, или ноль, если ни одна команда не была выполнена.
-
while -
Синтаксис команды
while:while test-commands; do consequent-commands; done
Выполняйте consequent-commands, пока test-commands завершается с кодом ноль. Возвращаемый статус — это код завершения последней команды, выполненной в consequent-commands, или ноль, если ни одна команда не была выполнена.
-
for -
Синтаксис команды
for:for name [ [in words ...] ; ] do commands; done
Раскройте words (см. Раскрытие командной строки), а затем выполните commands по одному разу для каждого слова в полученном списке, присваивая name текущее слово. Если конструкция «in words» отсутствует, команда
forвыполняет commands по одному разу для каждого заданного позиционного параметра, как если бы была указана конструкция «in "$@"» (см. Специальные параметры).Возвращаемый статус — это код завершения последней выполненной команды. Если раскрытие words не содержит элементов, команды не выполняются, а возвращаемый статус равен нулю.
Существует альтернативная форма команды
for, похожая на конструкцию в языке C:for (( expr1 ; expr2 ; expr3 )) [;] do commands ; done
Сначала вычислите арифметическое выражение expr1 согласно правилам, описанным ниже (см. Арифметические выражения оболочки). Затем вычисляйте арифметическое выражение expr2 до тех пор, пока его значение не станет нулём. Каждый раз, когда значение expr2 не равно нулю, выполните commands и вычислите арифметическое выражение expr3. Если какое-либо выражение опущено, оно считается равным 1. Возвращаемое значение — это код завершения последней выполненной команды из commands или ненулевое значение, если какое-либо из выражений недопустимо.
Используйте встроенные команды break и continue (см. Встроенные команды Bourne shell), чтобы управлять выполнением циклов.
Copyright © 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
Licensed under the GNU Free Documentation License.
https://www.gnu.org/software/bash/manual/html_node/Looping-Constructs.html