下面示例中构造 ((..)) 的名称和语法是什么?
for ((i=1;i<10;i++)) do echo $i; done
它有一个奇怪的变量 i
在哪里是 shell 中数字循环的其他结构?
下面示例中构造 ((..)) 的名称和语法是什么?
for ((i=1;i<10;i++)) do echo $i; done
它有一个奇怪的变量 i
在哪里是 shell 中数字循环的其他结构?
除了您列出的C 风格的 for 循环之外,您可以查看Advanced Bash Scripting Guide 的循环部分以获取更多循环构造示例。
也试试:
$ 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
在“Bash 参考手册”(4.0)的第 3.2.4.2 节中,“ ((...))
”符号被归类为算术表达式。$((...))
它与第3.5.5 节中描述为算术扩展的 ' ' 符号密切相关。§3.2.4.1“循环构造”说:
for
还支持命令的另一种形式:
for (( expr1 ; expr2 ; expr3 )) ; do commands ; done
首先,根据下述规则计算算术表达式 expr1(参见第 6.5 节 [Shell Arithmetic],第 78 页)。然后重复计算算术表达式 expr2,直到其计算结果为零。每次 expr2 计算为非零值时,都会执行命令并计算算术表达式 expr3。如果省略任何表达式,它的行为就好像它的计算结果为 1。返回值是列表中执行的最后一个命令的退出状态,如果任何表达式无效,则返回 false。
bash(1)
手册页,SHELL GRAMMAR部分,复合命令小节。while
数字循环的其他选择是until
手动增量。