for
for结构的退出状态由最后执行的commands决定。如果commands一次都没有被执行,for结构的退出状态为0.
for in
for name [ [in [words …] ] ; ] do commands; done
迭代遍历words里每个成员,绑定到name上,并执行commands.
如果in words不存在,等同于in “$@”,即遍历位置参数。
$ for var in a b c; do echo $var; done
a
b
c
$ bash -s 1 2 3
$ for var; do echo $var;done
1
2
3
for (( … ))
for (( expr1 ; expr2 ; expr3 )) ; do commands ; done
expr1, expr2, expr3都是算术表达式。
先计算expr1,然后重复对expr2求值,直到其求值为零。 每次expr2计算为非零值时,将执行commands并计算expr3。
expr1, expr2, expr3都可以省略。如果省略等同于值为1。
$ for (( i=0;i<10;i++ )); do echo $i; done
0
1
2
3
4
5
6
7
8
9