在实际工作中,经常会遇到某项目需要多次执行的情况,命令都是相同的。当面对各种列表重复执行任务时,使用简单的if语句很难满足要求,并且顺序编写全部代码更是显得异常繁琐,这时候就可以使用for循环语句,可以很好的解决这样的问题。
循环的定义
循环是指依赖某一个条件的限制,对一串逻辑性代码,进行反复性的操作,直到能够满足预期结果进行结束循环。如果没有预期结果,不间断执行,我们称之为“死循环” 。与循环有关的三个专业性名词:遍历,迭代,递归
一、循环语句
1、for循环语句
使用 for 循环语句时,需要指定一个变量及可能的取值列表,针对每一个不同的取值重复执行相同的命令序列,直到变量值用完退出循环。
for 循环语句的语法结构如下:
第一种语法 for i in {词语列表} do 命令序列 done 第二种语法 for((i=1;i<=10;i++)) #for((定义变量并赋值;决定循环范围;决定循环变量如何改变)) do 命令序列 done
2 while循环
使用 while 循环语句时,可以根据特定的条件反复执行一个命令序列,直到该条件不再满足时为止。但是在脚本应用中,应该避免出现死循环的情况,否则后边的命令操作将无法执行。
while [ 判断 ] 条件成立继续循环,条件不成立,不再循环 do 命令序列 let i++ 类似的语句 done
3 until循环
重复测试某个条件,只要条件不成立则反复执行
until [ 判断 ] 条件不成立执行循环,条件成立则不再继续执行 do 命令序列 let i++ 也可不是这种,就是会让时间循环起来的条件 done
二、双重循环
1、双重循环的理解
对于一些重复性动作我们可以用单层循环来满足重复性操作的需求,当这些重复性操作有了别的分支操作时,便不是一个变量就能够解决问题,所以我们要再引入一层循环,让操作的输出结果更见详细化或者是通过一个脚本满足更为复杂的循环需求
演示:
#!/bin/bash #双重循环的演示 for ((i=1;i<=6;i++)) do echo "=============这是外部循环执行的第 $i 次==================== " for ((a=1;a<=3;a++)) do echo "这是内部循环执行的第 $a 次" done done
实验: 累加1到100
for循环
1、
2、
while循环
until循环
实验
for
for i in {词语列表} do 命令序列 done
一、运用演示1:列表打印一份一到十的数字列表
#!/bin/bash for i in {1..10} #取值范围 do #do echo $i #循环i done #done
运用演示2:分类打印打印一份 0-10以内的奇数列表
[root@localhost xunhuan]#for i in {1..10..2} > do > echo $i > done
运用演示3:累加求和 求从1加到10的和
[root@localhost xunhuan]#num=0 [root@localhost xunhuan]#for i in {1..10} > do > num=$[num+i] > done [root@localhost xunhuan]#echo $num 55
while循环
猜价格游戏
- 通过变量RANDOM获得随机数,提示用户猜测并记录次数,猜中后退出循环
#!/bin/bash #猜价格游戏 qwe=$[RANDOM % 100] a=0 while [ $a -eq 0 ] #等于0 一直循环 do read -p "请输入你猜的价格(0-99):" num if [ $num -eq $qwe ] then echo "恭喜你猜对了!" let b++ #b++用来统计猜的次数 let a++ #a++代表正确后退出循环 elif [ $num -lt $qwe ] then echo "猜低了,继续猜" let b++ elif [ $num -gt $qwe ] then echo "猜高了,继续猜" let b++ fi done echo "你一共猜了$b 次"
until循环
重复测试某个条件,只要条件不成立则反复执行 基本上while能干的事情,until也能干
#!/bin/bash #求50以内的和 a=0 sum=0 #定义初值 until [ $a -gt 50 ] #大于50为假 do sum=$[sum + a] let a++ #得出值,并迭代 done echo "50以内的和: $sum "
三、退出循环
shell脚本常用的循环语句有三种:exit continue break
正常的循环情况下for循环和while循环是只要条件符合就会一直循环下去,而until循环是只要条件不成立,就会一直循环。但是有时我们利用循环并不想要循环输出的全部结果,只需要它的一部分结果时,这时便引入了结束语句来帮助我们获取指定范围内的循环输出结果,或者是让原本的死循环合理退出
1)break 的默认作用是退出单层循环
#!/bin/bash #双层循环测试 for ((i=1;i<=5;i++)) do #外层循环 echo "============外循环第 $i 次============" for ((a=1;a<=5;a++)) do #内层循环 echo "=======内循环第 $a 次=======" break done done
2)exit的默认作用时直接结束脚本进程,到此代表着脚本的结束
表示0-100的奇数和偶数的方式
使用花括号:奇数{1..100..2} 偶数{0..100..2}
使用for循环:奇数((i=1;i<=100,i+=2));偶数((i=0;i<=100,i+=2))
到此这篇shell脚本中循环语句_shell脚本语言的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/shellbc/1544.html