В
for (( expr1 ; expr2 ; expr3 )) ; do commands ; done
expr1
, expr2
и expr3
являются арифметическими выражениями.
Является expr1; expr2; expr3
не арифметическое выражение? ((expr1; expr2; expr3))
не является отдельной командой, поэтому я предполагаю expr1; expr2; expr3
не является арифметическим выражением. Обратите внимание, что expr1, expr2, expr3
является арифметическим выражением.
((
и ))
в цикле for отличаются от ((
и ))
в команде ((3))
?
Имеет ли ((expr1; expr2; expr3))
смысл только в цикле for? Или еще где?
выражение1 ; выражение2 ; expr3
не является арифметическим выражением, поскольку ;
не является возможным оператором в арифметических выражениях, как вы можете видеть, прочитав синтаксис арифметических выражений в руководстве по bash .
Синтаксис цикла for дает форму for (( expr1 ; expr2 ; expr3 )); выполнить команды ; done
с точкой с запятой. Таким образом, бит ((…))
- это не то же самое, что арифметическая инструкция , которая не начинается с для
.
(( expr1 ; expr2 ; expr3 ))
является частью синтаксиса цикла for . Это только допустимая синтаксическая единица после для
.