首页 / Linux 命令行入门教程 / 88. 循环:for / while / until 与 break / continue

Linux 命令行入门教程

88. 循环:for / while / until 与 break / continue

本教程共 90 篇 · 第 88 篇

88. 循环:for / while / until 与 break / continue

循环让一段代码重复跑。bash 提供 forwhileuntil 三种,配合 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

whileuntil 里一定要写能改变条件的语句(比如 count=$((count+1))),否则条件永远成立,循环跑个没完,卡死终端。

小结:for 遍历、while 看条件真、until 看条件假。break 跳出、continue 跳本次,循环控制就这俩。