Bash 的 for...in 循环用于遍历列表,语法为:
for 变量 in 列表
do
命令
...
done
其中,列表是以空白字符(空格、换行等)分隔的字符串,例如 A B C D。
如果省略(部分)换行,则需要使用分号(;)区分:
for 变量 in 列表; do 命令; 命令; done
示例:
for name in Tom Jerry Spike
do
echo $name
done
运行结果:
Tom
Jerry
Spike
配合通配符(*)可以遍历文件系统。
示例:
echo /dev/*
for dev in /dev/*
do
echo "loop: $dev"
done
运行结果:
/dev/null /dev/random /dev/shm /dev/stderr /dev/stdin /dev/stdout /dev/tty /dev/tty1 /dev/urandom
loop: /dev/null
loop: /dev/random
loop: /dev/shm
loop: /dev/stderr
loop: /dev/stdin
loop: /dev/stdout
loop: /dev/tty
loop: /dev/tty1
loop: /dev/urandom
可以看到 /dev/* 被 Bash 解析为 /dev/null /dev/random /dev/shm /dev/stderr /dev/stdin /dev/stdout /dev/tty /dev/tty1 /dev/urandom