Циклические конструкции
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:for (( expr1 ; expr2 ; expr3 )) ; do commands ; done
Сначала вычисляется арифметическое выражение expr1 в соответствии с правилами, описанными ниже (см. Арифметика оболочки). Затем арифметическое выражение expr2 вычисляется повторно до тех пор, пока не станет равным нулю. Каждый раз, когда expr2 вычисляет ненулевое значение, commands выполняются, и вычисляется арифметическое выражение expr3. Если какой-либо из выражений опущен, он ведет себя так, как если бы он вычислялся до 1. Возвращаемое значение — это код возврата последней выполненной команды в commands, или false, если какое-либо из выражений некорректно.
Встроенные команды 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