Linux 命令行入门教程
88. 循环:for / while / until 与 break / continue
本教程共 90 篇 · 第 88 篇
88. 循环:for / while / until 与 break / continue
循环让一段代码重复跑。bash 提供 for、while、until 三种,配合 break/continue 控制节奏。
for:遍历列表
最常用,把一组值挨个取出来:
for f in 苹果 梨 李子; do
echo "水果:$f"
done
遍历当前目录的脚本文件:
for f in *.sh; do
echo "处理 $f"
done
也能写 C 语言风格的计数循环:
for (( i = 0; i < 5; i++ )); do
echo "第 $i 次"
done
{1..10} 这种花括号展开(如 §12 所述)也常配合 for 用:for n in {1..10}; do ...。
while:条件为真就循环
先判断条件,成立才进循环体:
count=0
while [ "$count" -lt 3 ]; do
echo "count = $count"
count=$(( count + 1 ))
done
until:条件为假才循环
和 while 相反,条件不成立时一直循环,成立就停:
count=0
until [ "$count" -ge 3 ]; do
echo "count = $count"
count=$(( count + 1 ))
done
break 与 continue
break 直接跳出整个循环;continue 跳过本次,进入下一轮:
for n in {1..10}; do
if [ "$n" -eq 5 ]; then
continue # 跳过 5
fi
if [ "$n" -gt 8 ]; then
break # 到 9 直接结束
fi
echo "$n"
done
上面会打印 1 2 3 4 6 7 8,跳过了 5,到 9 停止。
Warning
while和until里一定要写能改变条件的语句(比如count=$((count+1))),否则条件永远成立,循环跑个没完,卡死终端。
小结:for 遍历、while 看条件真、until 看条件假。break 跳出、continue 跳本次,循环控制就这俩。