continue语句用于跳过当前循环剩余部分并进入下一次迭代,仅可在for、while、until循环内使用;在嵌套循环中只影响最内层,不支持标签语法,需用标志变量实现多层跳转。

continue 语句在 Linux Shell 脚本(如 Bash)中用于跳过当前循环体的剩余部分,直接进入下一次迭代。它只能用在 for、while 或 until 循环内部,不能单独出现在脚本顶层或函数外部。
在 for 循环中使用 continue
当满足某个条件时,跳过本次循环后续命令,立即开始下一轮遍历。
例如:遍历数字 1 到 5,跳过偶数,只打印奇数:
for i in {1..5}; do
if (( i % 2 == 0 )); then
continue
fi
echo "$i"
done
输出为:
1
3
5
在 while 循环中使用 continue
注意要确保循环变量仍被正确更新,否则可能陷入死循环。
Linux 性能分析与调优专家,覆盖 CPU、内存、磁盘 I/O、网络、内核参数、编译优化、容器/K8s。适用场景:系统卡顿/高负载、内存不足/OOM/Swap 高、CPU 异常/iowait 高。
- 在
continue前手动递增计数器 - 避免跳过更新逻辑导致无限循环
示例:打印 1–5 中不等于 3 的数:
i=1
while [ $i -le 5 ]; do
if [ $i -eq 3 ]; then
i=$((i + 1))
continue
fi
echo "$i"
i=$((i + 1))
done
常见误用和注意事项
-
不能在 if 语句中单独使用:必须位于循环体内,否则报错
syntax error near unexpected token `continue' -
不会跳出整个循环:仅跳过当前轮次,与
break不同 - 嵌套循环中只影响最内层:如需跳过外层循环,需借助标志变量或函数返回
-
Shell 中无标签语法:Bash 不支持类似 C 的
continue label,多层跳转需自行设计控制逻辑
实用技巧:结合条件简化逻辑
用 continue 可减少缩进,让主流程更清晰。
比如处理文件列表时跳过非普通文件:
for file in *; do
[ ! -f "$file" ] && continue
echo "Processing: $file"
# 实际处理命令放在这里
done
比用 if [ -f "$file" ]; then ... fi 更扁平易读。










