在
for (( expr1 ; expr2 ; expr3 )) ; do commands ; done
expr1
、expr2
、 和expr3
是算术表达式。
不是
expr1 ; expr2 ; expr3
算术表达式吗?(( expr1 ; expr2 ; expr3 ))
不是一个独立的命令,所以我猜expr1 ; expr2 ; expr3
不是一个算术表达式。注意这expr1, expr2, expr3
是一个算术表达式。for 循环中的
((
and与命令中的and不同吗?))
((
))
(( 3 ))
只有在for循环中才有
(( expr1 ; expr2 ; expr3 ))
意义吗?或者还有其他什么地方?
答案1
expr1; expr2; expr3
不是算术表达式,因为;
不是算术表达式中可能的运算符,正如您可以通过阅读bash 手册中算术表达式的语法。
这for循环的语法给出形式, 带分号.所以这个位与一个不一样for ((expr1; expr2; expr3)) ; do commands ; done
((…))
算术指令,不以 开头for
。
((expr1; expr2; expr3))
是的一部分for循环的语法。它只是 后的一个有效语法单元for
。