



下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 shell编程之循环语句(2) 7. for语句 ,每完成一次循环过程就将var赋予列表中下一个条目,直到完成最后一个条目的循 环为止 语法: for var in list do list A done 对列表的每一条目都进行一次循环过程 例子: $ cal 1est_fbr for X in 1 2 3 4 5 do - 、- c lei X=X*2 echo SX done $(est_for 2 * 1 is 2 2 * 2 is 4 2 * 3 is 6 2 * 4 is 8 在上例中,关键字为 for,in,do和 赋值会贯穿for循环的执行过程中, 一次循环执行都要将一个串赋值
2、给 2 *5 is 10 var。 done,var代表一个 shell变量的名字,这个变量的 list是一串由空格或者tab分割开的字符串,在每 for循环的执行过程如下: l.shell变量var被设置等于list中的第一个字符。 2.list A中的命令会被执行。 3.shell变量var被设置等于list中下一个字符。 4.list A中的命令被执行。 5.循环会持续执行,直到每一个list中的条目都执行过循环为止。 8. for循环的例子 例A: $ cat example_A for NAME in $(grep home /etc/passwd | cut -f1 -d:) do
3、 mail $NAME inlg.minulcs echo mailed mtgminutes to SNAME done 例B $ cat example_B for FILE in * do if -d $FILE then -F $FILE fi done for结构是一种非常灵活的循环结构,它能够让循环贯穿任何能产生的列表。使用命 令替代可以很容易产生生成列表,就像第一个例子使用管道和过滤器可以产生一个列 表。如果你要求多次存取相同的列表,你也许想要将它存储到个文件中。你可以使用 cat命令来为你的for循环产生列表,正如下例所示: cat students user I user2
4、user3 user4 $ cat for student fi le copy fbr NAME in $(cat stude nts) do cp test.file /home/SNAME chown SNA ME om e SN A ME. rtest. fl e chmod g-w,o-w /home/$NAME/test.file echo done $NAM:E done S 存取命令行参数 list: 或者 你可以从命令行参数来产生 for i do op $i $ HOME backups done ibr i in S* do cp $i SHOME/backups don
5、e break n continue n 程的开始部分 exit n 9. break,continue,和 exit 命令 中止循环过程的执行,并且跳到下一个命令。 停止shell程序的执行,并且将返回值设置为 n。 停止循环过程的当前一个反复并且跳到循环中的下一个反复过 在许多情况下,你可能需要在循环的正常中止条件满足之前放弃一个循环的执行。 break和continue命令提供了一种无条件的流程控制,通常用在遇到一个错误的情况 下来中止当前的循环。而exit命令用在不能从某种情况下恢复出来而必须中止整个程 序的运行的时候。 break命令会中止循环并且将控制权传递到done关键字后面的第
6、一个命令。结果是 完全跳出这个循环体而继续执行下面的命令。 continue命令有一点不同。当在程序执行过程中遇到这个命令,就会忽略本次循环中 剩余的命令,而将控制权交给循环的顶部。这样,continue命令能让你仅仅中止所有 循环中的一个循环过程而继续从当前循环的顶部开始执行。 在while和until循环中,这种处理(continue)会导致在初始列表的开始部分继续执行, 在for循环中,会将变量设置为列表中的下一个条目,然后继续执行循环。 exit命令停止执行当前的shell程序,并且根据提供的参数为这个shell程序设置一个 返回值,如果没有提供返回值参数,当前的shell程序的返回值
7、会被设置为在exit命 令之前执行的命令的返回值。 注意:循环的流程控制在正常的情况下应当是通过设置循环开始部分的条件 (while,until),或者是列表中的条目都循环完的(for),的情况来结束循环。而对循环 过程进行中断操作仅仅应当在循环执行期间遇到没有规律的或者是错误的条件的时 候才应当使用。 10.break 和 continue 的例子 while true do 、I ;c read FILE if,.:-f $FILE then echo $FILE is not a regular file continue fi echo removing SFILE I rmtFILE
8、 break done 这个例子显示 break和continue命令的一次有效的使用。这个命令的执行是在while 循环的test条件为真的情况下,会始终产生一个为真的结果;这意味着这个循环会是 一个无限的循环,除非循环体中的某些命令能中止循环的运行(这就是bread命令需 要做的)。如果输入的文件不是一个普通文件,一个错误信息会打印,同时continue 如果这个文件是个普通的文件,它会被删除,并 命令会提醒用户再输入一次文件名。 且break命令被用来跳出这个无穷循环。 ll.shell编程之循环总结 Id expression (expression) while condition is true do .done until condition is true do . done
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度不锈钢材料生产设备维修保养合同
- 二零二五年度建筑水电工程税收筹划合同书
- 二零二五年度市政道路照明工程施工合同费支付条款
- 二零二五年度专业维修技师个人劳务用工协议
- 二零二五年度物联网设备合作分成与智能解决方案协议
- 2025版知识产权担保合同担保期限及侵权赔偿条款
- 2025版机场候机楼电气安装工程合同
- 2025年数据中心机房迁移与设备调优服务合同
- 二零二五年工业自动化设备采购协议
- 二零二五年度国际货物仓储合同范本
- 2025年山东烟台国丰投资控股有限公司招聘笔试参考题库含答案解析
- 2025年江苏苏州昆山市事业单位招考笔试高频重点模拟试卷提升(共500题附带答案详解)
- 稳定性冠心病基层诊疗指南培训考试试题
- 医院司梯服务流程
- 文字蒙求高清完整版
- 电力专项规划汇报
- 生猪屠宰兽医卫生检疫人员考试题库答案
- 获奖项目曲线顶管施工方案
- 妊娠期无乳链球菌的护理
- 劳模工作室创新工作室建设方案范例(2篇)
- 引流袋更换护理常规
评论
0/150
提交评论