for适合遍历已知集合,while适合条件驱动的不确定循环;for常用于列表、文件、数字范围,while用于读取输入、轮询或状态检测;二者可嵌套组合,需注意引号、IFS、子shell等避坑细节。

Linux Shell 中的 for 和 while 是最常用的循环结构,掌握它们能大幅提升自动化脚本编写效率。关键在于理解适用场景:for 适合已知范围或列表遍历,while 更适合条件驱动、不确定次数的重复操作。
for 循环:遍历固定集合或数字范围
for 循环语法简洁,常用于处理数组、文件名、命令输出或数字序列。
-
遍历字符串列表:
for name in Alice Bob Charlie; do echo "Hello $name"; done -
遍历当前目录所有 .sh 文件:
for file in *.sh; do [[ -f "$file" ]] && echo "Found script: $file"; done
注意加[[ -f "$file" ]]防止通配符无匹配时原样输出*.sh。 -
数字范围(用 seq 或 brace expansion):
for i in {1..5}; do echo "Step $i"; done
或兼容性更强写法:for i in $(seq 1 2 10); do echo "Odd: $i"; done(1 到 10 的奇数)
while 循环:按条件持续执行,适合读取输入或轮询
while 在每次迭代前判断条件,只要返回 true 就继续,适合处理动态数据流或等待状态变化。
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。
还木有评论哦,快来抢沙发吧~