- 时间:2022-12-05 12:11 编辑: 来源: 阅读:
- 扫一扫,手机访问
摘要:shell脚本编程之循环语句
在运行脚本时重复执行一系列的命令是很常见的,这时我们就需要使用循环语句来达到这个目的。
一、for命令
格式:for 变量 in 列表;do
循环体
done
for命令会遍历列表中的每一个值,并且在遍历完成后退出循环。
列表形式有以下几种:
1、在命令中定义的一系列的值;
2、变量;
3、命令;
4、目录;
5、文件。
[b]实例1:[/b]
[img]http://files.jb51.net/file_images/article/201601/2016114104925445.png?2016014104946[/img]
上例中使用{初始值..结束值}格式来表示一个区间的数值。
[b]实例2:以变量作为列表:[/b]
[b][img]http://files.jb51.net/file_images/article/201601/2016114105059283.jpg?2016014105114[/img]
[/b]
[b]实例3:用命令生成列表:[/b]
[img]http://files.jb51.net/file_images/article/201601/2016114105134389.jpg?201601410527[/img]
上例中使用seq命令来生成列表,seq命令的格式为:seq [初始值 步长] 终止值
[img]http://files.jb51.net/file_images/article/201601/2016114105218831.jpg?2016014105236[/img]
以上两个例子中使用反引号将得到命令运行的结果。
[b]实例4:将目录作为列表:[/b]
[b][img]http://files.jb51.net/file_images/article/201601/2016114105257077.jpg?2016014105314[/img]
[/b]
二、C语言风格的for命令
格式:for (( 变量赋值;循环终止条件;步长 )); do
循环体
done
实例:求从1加到100的和:
[img]http://files.jb51.net/file_images/article/201601/2016114105355998.jpg?201601410549[/img]
三、until命令
格式:until 条件; do
statement
...
done
until命令中的条件满足时则会退出循环。
实例:
[img]http://files.jb51.net/file_images/article/201601/2016114105428724.jpg?2016014105443[/img]
四、while命令
格式:while 条件; do
statement
...
done
while命令当条件满足时则进入循环。
实例:
[img]http://files.jb51.net/file_images/article/201601/2016114105513790.jpg?2016014105529[/img]
五、控制循环
[b]1、break命令[/b]
作用:退出正在进行中的循环。
实例:如果变量i为3则退出循环。
[img]http://files.jb51.net/file_images/article/201601/2016114105551632.jpg?201601410566[/img]
[b]2、continue命令[/b]
作用:提前进入下一轮循环。
实例:将1到20和51到100之间的数相加:
[img]http://files.jb51.net/file_images/article/201601/2016114105807798.jpg?2016014105823[/img]
六、while的殊用法
[b]1、死循环
[/b]
格式:while :; do
语句
done
实例:
[img]http://files.jb51.net/file_images/article/201601/2016114105704820.jpg?2016014105720[/img]
[b]2、将文件内容逐行读入循环中[/b]
格式:while read 变量名; do
循环体
done < 文件
实例:逐行读入/etc/passwd文件的内容:
[img]http://files.jb51.net/file_images/article/201601/2016114105620971.jpg?2016014105636[/img]