![Shell循环结构讲解_第1页](http://file4.renrendoc.com/view10/M00/08/0B/wKhkGWWmioOAYOqKAAEKu6vN7lU752.jpg)
![Shell循环结构讲解_第2页](http://file4.renrendoc.com/view10/M00/08/0B/wKhkGWWmioOAYOqKAAEKu6vN7lU7522.jpg)
![Shell循环结构讲解_第3页](http://file4.renrendoc.com/view10/M00/08/0B/wKhkGWWmioOAYOqKAAEKu6vN7lU7523.jpg)
![Shell循环结构讲解_第4页](http://file4.renrendoc.com/view10/M00/08/0B/wKhkGWWmioOAYOqKAAEKu6vN7lU7524.jpg)
![Shell循环结构讲解_第5页](http://file4.renrendoc.com/view10/M00/08/0B/wKhkGWWmioOAYOqKAAEKu6vN7lU7525.jpg)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
模块3Shell基础编程Shell循环结构3.4Shell脚本中的循环在LinuxShell的编程过程中,有时需要反复执行某一个命令或某一组命令,这时要用到循环语句。循环语句用于特定条件下决定某些语句重复执行的控制方式,它具有封闭型的单入单出性质,如果未达到结束状态,将一直执行循环体内的操作。Shell中常用的循环语句有while循环语句和for循环语句等。3.4.1while循环while循环的重复执行次数是利用一个条件来控制的,它的语法结构如下。while条件测试表达式do操作语句(可以多条)donewhile循环语句执行的过程是:先判断条件测试表达式的结果,如果为真则执行循环体,并且执行完循环体后进行下一次循环,否则退出循环执行done后的命令。3.4.1while循环【例3-8】编写Shell脚本,让用户从键盘输入1~10的整数来进行猜数游戏。3.4.1while循环【例3-9】编写Shell脚本,让用户从键盘输入一个整数n,求1+2+…+n的和。3.4.2for循环for循环是LinuxShell中最常用的结构。for循环常用的有两种结构:第一种结构是列表for循环,第二种结构是类C语言风格的for循环。1.列表for循环列表for循环语句用于将一组命令执行已知的次数,它的语法结构如下。for变量in{list}do操作语句(可以多条)done此for循环执行次数和list列表中常数或字符串的个数相同,先将in后list列表的第一个常数或字符串赋值给变量,然后执行循环体;接着将list列表第二个赋值给变量,再次执行循环体。这个过程持续到list列表执行完毕,然后执行done后的操作命令。43.4.2for循环[root@localhost~]#vimfor1.sh[root@localhost~]#catfor1.sh#!/bin/bashforiin12345doecho"welcome,$itimes"done[root@localhost~]#shfor1.shwelcome,1timeswelcome,2timeswelcome,3timeswelcome,4timeswelcome,5times【例3-10】编写Shell脚本显示5次欢迎操作。3.4.2for循环[root@localhost~]#vimfor2.sh[root@localhost~]#catfor2.sh#!/bin/bashforiin{1..5..2}doecho"Thenumberis$i"done[root@localhost~]#shfor2.shThenumberis1Thenumberis3Thenumberis5【例3-11】编写Shell脚本显示出5以内的奇数。3.4.2for循环上例中通过{1..5..2}实现1~5内的奇数按步数2进行跳跃。同样可以通过seq命令实现按2递增来输出1~5内的所有奇数,只需将上例中的for循环那一行更改为以下内容即可。foriin`seq125`注意的是反引号(``)3.4.2for循环[root@localhost~]#vimfor3.sh[root@localhost~]#catfor3.sh#!/bin/bashforiin`ls*.sh`//注意反引号(``)和通配符(*)doecho-en"$i\t"//解析“\t”和不换行done[root@localhost~]#shfor3.shcase1.shcase2.sh……省略部分信息……while2.sh【例3-12】编写Shell脚本输出当前目录所有以“.sh”结尾的文件。3.4.2for循环2.类C语言风格的for循环类C语言风格的for循环一般用于循环次数已知的情况,它的语法结构如下。for((表达式1;表达式2;表达式3))do操作语句(可以多条)done其中,表达式1为循环变量赋初值的语句;表达式2为判断条件测试表达式的结果,如果为真则执行循环体,并且执行完循环体后进行下一次循环,否则退出循环执行done后的命令;表达式3用于改变循环变量的语句。3.4.2for循环[root@localhost~]#vimfor4.sh[root@localhost~]#catfor4.sh#!/bin/bashread-p"Pleaseinputthenumber:"inNumfor((sum=0,i=1;i<=$inNum;i+=2))dosum=$[sum+i]doneecho"Thesumis$sum"[root@localhost~]#shfor4.shPleaseinputthenumber:3Thesumis4[root@localhost~]#shfor4.shPleaseinputthenumber:100Thesumis2500【例3-13】编写Shell脚本,让用户从键盘输入一个整数n,求1~n的奇数和。3.4.3嵌套循环一个循环体内包含另一个完整的循环结构,称为循环嵌套。在外部循环的每次执行过程中都会触发内部循环,直至内部完成一次循环,才接着执行下一次外部循环。for循环和while循环可以相互嵌套。3.4.3嵌套循环【例3-14】编写Shell脚本,利用for循环完成下图所示的九九乘法表。3.4.3嵌套循环【例3-15】编写Shell脚本,利用for循环嵌套实现一个8×8格的棋盘。为了完成此例,需要先了解Shell脚本中echo显示内容带颜色显示的方法及格式,其中“F”为字体颜色,编号为30~37;“B”为背景颜色,编号为40~47。echo显示带颜色需要使用参数“-e”,格式为:echo-e"\033[B;Fm字符串\033[0m"或者echo-e"\033[F;Bm字符串\033[0m"3.4.3嵌套循环其中,B和F有其一亦可,具体的范围及颜色见表3-5。表3-5常用的字体及背景编号对应颜色3.4.3
嵌套循环[root@localhost~]#vimfor6.sh[root@localhost~]#catfor6.sh#!/bin/bashfor((i=1;i<=8;i++))dofor((j=1;j<=8;j++))dototal=$[$i+$j]tmp=$[$total%2]if[[$tmp-eq0]];thenecho-en"\033[44m\033[0m"elseecho-en"\033[41m\033[0m"fidoneecho""//换行done[root@localhost~]#shfor6.sh下面进行【例6-15】的Shell脚本编写。3.4.3
嵌套循环上例使用了类C语言风格的for嵌套循环实现了8×8的棋盘:-通过i和j之和取模来使棋盘黑白相间,其中,“\033[47m”表示白色,“\033[40m”表示黑色,其后的空格表示每个棋格的长宽,“\033[0m”表示关闭所有属性.-同时可以通过“\033[5m”来达到闪烁的效果。3.4.4
循环控制符在LinuxShell编程中,有时需要立即从循环中退出:-可以使用break循环控制符退出循环;-使用continue循环控制符仅退出本次循环而执行后续的循环。3.4.4
循环控制符1.break循环控制符break语句可以应用在for和while循环语句中,用户强行退出循环,下面通过修改【例3-14】来说明break循环控制符的作用。3.4.4循环控制符从上面的脚本可以看出,虽然for循环设计为输出九九乘法表,但是由于$i大于3时使用break循环控制符终止了for循环语句,因此输出只到3。需要注意的是,如果有多个循环需跳出,则要在相应的位置加上break语句,因为break语句仅能退出当前所处的循环。3.4.4循环控制符2.continue循环控制符continue循环控制符也是应用在for和while
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年海南从业资格证货运题库答案
- 电力损耗管理合同(2篇)
- 晋教版地理七年级下册9.5《极地地区──冰封雪裹的世界》听课评课记录
- 小学五年级下册数学《同分母分数加减法》听评课记录
- 2024年春五年级语文下册第一单元3冬不拉课文原文素材语文S版
- 2024-2025学年高中政治课时分层作业19培育和践行社会主义核心价值观含解析新人教版必修3
- 2024-2025学年新教材高中地理第一单元从宇宙看地球第一节地球的宇宙环境第1课时宇宙和太阳课后篇巩固提升含解析鲁教版必修第一册
- 专业技术人员年终工作总结
- 初中历史社团活动总结
- 教师户外活动总结
- 河南2025年河南职业技术学院招聘30人笔试历年参考题库附带答案详解
- 2024年湖南有色金属职业技术学院高职单招职业技能测验历年参考题库(频考版)含答案解析
- 生物-辽宁省大连市2024-2025学年高三上学期期末双基测试卷及答案
- 《民营企业清廉建设评价规范》
- 智能RPA财务机器人开发教程-基于来也UiBot 课件 第2章-常用机器人流程自动化
- 品管圈PDCA改善案例-降低住院患者跌倒发生率
- 读书分享《给教师的建议》课件
- 《中小学校园食品安全和膳食经费管理工作指引》专题讲座
- 广东省茂名市2023-2024学年高一上学期物理期末试卷(含答案)
- 江苏省苏州市昆山、太仓、常熟、张家港四市2024-2025学年八年级上学期期中阳光测评生物学试卷(含答案)
- 沙发市场需求与消费特点分析
评论
0/150
提交评论