本文共 1713 字,大约阅读时间需要 5 分钟。
在Linux shell编写脚本时,For循环是处理大量重复任务的核心工具。本文将详细介绍shell脚本中的For循环使用方法,包括带列表、不带列表、类C风格以及无限循环的实现技巧。
最常见的For循环是用于遍历列表中的元素,逐一处理每个项目。语法结构如下:
for VARIABLE in (list) do COMMANDdone
示例1:遍历特定列表
#!/bin/bashfor FRUIT in apple orange banana pear do echo "$FRUIT is John's favorite"done
运行脚本:
# execute the scriptsh fruit.sh
输出结果:
apple is John's favoriteorange is John's favoritebanana is John's favoritepear is John's favorite
示例2:使用变量求和
#!/bin/bashsum=0for VAR in `seq 1 100` do let "sum += VAR"doneecho "Total: $sum"
运行脚本:
sh sum.sh
输出结果:
Total: 5050
说明:seq 1 100 会生成从1到100的数字列表,循环中依次加到sum变量中。
不带列表的For循环适用于程序接受参数传递的方式。语法结构如下:
for VARIABLE in (list) do COMMANDdone
示例如下:
#!/bin/bashsum=0for VAR do let "sum += VAR"done
运行脚本:
sh sum.sh 2 5 6
输出结果:
Total: 13
说明:脚本后面使用空格分隔的参数传递给loop,参数会作为变量处理。
shell支持类似C语言的for循环结构,语法形式如下:
for ((expression1; expression2; expression3)) do COMMANDdone
表达式说明:
示例:初始化循环变量并倒数
#!/bin/bashfor ((i=1; j=100; i++; j--)) do echo "i=$i, j=$j"done
运行脚本:
sh c_for.sh
输出结果:
i=1, j=100i=2, j=99...i=10, j=91
说明:循环从1开始递增,j从100递减,直到i和j都超过设定范围。
无限循环适用于需要持续执行特定操作的任务。条件只要保持为真,循环就会无止境进行。例如:
#!/bin/bashfor ((i=0; i<1; i+=0)) do echo "i=$i"done
运行脚本:
可以通过Ctrl+C组合键终止循环。
循环特点:
true,否则循环不会执行。注意事项:
在使用无限循环时,建议配合其他机制(如计时器、监控条件变量)结合使用,避免造成资源耗尽或系统不响应。
优化循环内部语句:
(( ))结构以确保针对每个循环体都具有独立环境。循环变量的命名:
性能优化:
通过以上方法,可以有效地在shell脚本中实现循环控制任务,从而提升工作效率。
转载地址:http://bdtvz.baihongyu.com/