编程-SHELL编程-循环语句2_第1页
编程-SHELL编程-循环语句2_第2页
编程-SHELL编程-循环语句2_第3页
编程-SHELL编程-循环语句2_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、shell编程之循环语句(2)7. for语句,每完成一次循环过程就将var赋予列表中下一个条目,直到完成最后一个条目的循 环为止 语法:for var in listdolist Adone对列表的每一条目都进行一次循环过程例子:$ cal 1est_fbrfor X in 1 2 3 4 5do- 、- clei X=X*2echo SXdone$(est_for2 * 1 is 22 * 2 is 42 * 3 is 62 * 4 is 8在上例中,关键字为 for,in,do和 赋值会贯穿for循环的执行过程中, 一次循环执行都要将一个串赋值给2 *5 is 10var。done,va

2、r代表一个 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_Afor NAME in $(grep home /etc/passwd | cut -f1 -d:) domail $NAME inlg.minulcsecho mailed

3、mtgminutes to SNAME done例B$ cat example_B for FILE in * doif-d $FILE then-F $FILE fidonefor结构是一种非常灵活的循环结构,它能够让循环贯穿任何能产生的列表。使用命 令替代可以很容易产生生成列表,就像第一个例子使用管道和过滤器可以产生一个列 表。如果你要求多次存取相同的列表,你也许想要将它存储到个文件中。你可以使用cat命令来为你的for循环产生列表,正如下例所示: cat studentsuser Iuser2user3user4$ cat for student fi le copyfbr NAME i

4、n $(cat stude nts)docp test.file /home/SNAMEchown SNA ME om e SN A ME. rtest. fl echmod g-w,o-w /home/$NAME/test.fileecho done $NAM:E doneS存取命令行参数list:或者你可以从命令行参数来产生for idoop $i $ HOME backupsdoneibr i in S*docp $i SHOME/backupsdonebreak n continue n 程的开始部分exit n9. break,continue,和 exit 命令中止循环过程的执行,

5、并且跳到下一个命令。停止shell程序的执行,并且将返回值设置为n。停止循环过程的当前一个反复并且跳到循环中的下一个反复过在许多情况下,你可能需要在循环的正常中止条件满足之前放弃一个循环的执行。break和continue命令提供了一种无条件的流程控制,通常用在遇到一个错误的情况下来中止当前的循环。而exit命令用在不能从某种情况下恢复出来而必须中止整个程 序的运行的时候。break命令会中止循环并且将控制权传递到done关键字后面的第一个命令。结果是完全跳出这个循环体而继续执行下面的命令。continue命令有一点不同。当在程序执行过程中遇到这个命令,就会忽略本次循环中剩余的命令,而将控制权

6、交给循环的顶部。这样,continue命令能让你仅仅中止所有循环中的一个循环过程而继续从当前循环的顶部开始执行。在while和until循环中,这种处理(continue)会导致在初始列表的开始部分继续执行, 在for循环中,会将变量设置为列表中的下一个条目,然后继续执行循环。exit命令停止执行当前的shell程序,并且根据提供的参数为这个shell程序设置一个返回值,如果没有提供返回值参数,当前的shell程序的返回值会被设置为在exit命令之前执行的命令的返回值。注意:循环的流程控制在正常的情况下应当是通过设置循环开始部分的条件(while,until),或者是列表中的条目都循环完的(f

7、or),的情况来结束循环。而对循环 过程进行中断操作仅仅应当在循环执行期间遇到没有规律的或者是错误的条件的时 候才应当使用。10.break 和 continue 的例子whiletruedo、I ;cread FILEif,.:-f $FILEthenecho $FILE is not a regular file continuefiecho removing SFILEI rmtFILE 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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论