Каково название и синтаксис конструкции ((..)) в примере ниже?Числовые циклы в оболочке
for ((i=1;i<10;i++)) do echo $i; done
имеет странные переменный я
где другие конструкции для цифрового велоспорта в оболочках?
Каково название и синтаксис конструкции ((..)) в примере ниже?Числовые циклы в оболочке
for ((i=1;i<10;i++)) do echo $i; done
имеет странные переменный я
где другие конструкции для цифрового велоспорта в оболочках?
В разделе §3.2.4.2 части 'Bash Reference Manual' (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, если какое-либо из выражений недействительно.
bash(1)
людей страница, ОБОЛОЧКА ГРАММАТИЧЕСКОЙ секции, составных команды подраздела. Другие варианты для числовых циклов: while
и until
с ручным приращением.
Вы можете проверить Advanced Bash Scripting Guide's section on Loops на другие примеры циклов, кроме C-style for loop, которые вы указали.
Попробуйте также:
$ for i in {1..5}; do echo $i; done # range argument
1
2
3
4
5
$ for i in `seq 1 5`; do echo $i; done # iterate over seq command
1
2
3
4
5