В разделе §3.2.4.2 «Справочного руководства Bash» (4.0) нотация «((...))
» классифицируется как арифметическое выражение. Он тесно связан с нотацией '$((...))
', описанной в §3.5.5 как арифметическое расширение. А в п. 3.2.4.1 «Циклические конструкции» сказано:
Также поддерживается альтернативная форма команды for
:
for (( expr1 ; expr2 ; expr3 )) ; do commands ; done
Сначала арифметическое выражение expr1 оценивается в соответствии с описанными правилами.
ниже (см. раздел 6.5 [Оболочечная арифметика], стр. 78). Арифметика
Затем выражение expr2 оценивается многократно, пока оно не станет равным нулю. каждый
время expr2 оценивается как ненулевое значение, команды выполняются и арифметика
Выражение expr3 оценивается. Если какое-либо выражение опущено, оно ведет себя как
если он равен 1. Возвращаемое значение - это статус выхода последней команды в
список, который выполняется, или false, если какое-либо из выражений недопустимо.