基本使用
最直观的 for 语法如下
for name in [in words ...]; do
commands
done
我们可以利用 for 语法做一个遍历,例如
#!/bin/bash
for i in {1..10}; do
echo $i
done
这样看起来不是很直观,因此 shell 还提供一些类似高级语言的写法
for (( exp1; exp2; exp3 )); do
commands
done
因此上面的脚本可以改写如下
#!/bin/bash
for (( i = 1; i <= 10; i++ )); do
echo $i
done
遍历参数
如果省略了 for 结构语法的 in words ...
,那么表示遍历脚本参数
#!/bin/bash
for param; do
echo $param
done
相比于用 shift 命令来遍历参数,for 结构可以保留原来的参数值不变。
小疑问
使用传统的 for 语法,只能把变量按1递增吗?当然不是。如果你这样认为,只能说对 shell 的大括号扩展不了解。
#!/bin/bash
# 输出1到10内的奇数
for i in {1..10..2}; do
echo $i
done
{1..10..2}
使用shell的大括号扩展语法,最后的..2
表示以2递增。