收藏 分享(赏)

shell编程-shell编程-循环语句(2).doc

上传人:dzzj200808 文档编号:2610081 上传时间:2018-09-23 格式:DOC 页数:4 大小:25.50KB
下载 相关 举报
shell编程-shell编程-循环语句(2).doc_第1页
第1页 / 共4页
shell编程-shell编程-循环语句(2).doc_第2页
第2页 / 共4页
shell编程-shell编程-循环语句(2).doc_第3页
第3页 / 共4页
shell编程-shell编程-循环语句(2).doc_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

1、shell 编程 shell 编程循环语句(2)shell 编程之循环语句(2)7.for 语句对列表的每一条目都进行一次循环过程,每完成一次循环过程就将 var 赋予列表中下一个条目,直到完成最后一个条目的循环为止语法: 例子:for var in list$ cat test_fordo for X in 1 2 3 4 5list A dodone echo “2 * $X is c“ let X=X*2 echo $X done $ test_for 2 * 1 is 2 2 * 2 is 4 2 * 3 is 6 2 * 4 is 8 2 * 5 is 10在上例中,关键字为 for

2、,in,do 和 done,var 代表一个 shell 变量的名字,这个变量的赋值会贯穿 for 循环的执行过程中,list 是一串由空格或者 tab 分割开的字符串,在每一次循环执行都要将一个串赋值给 var。for 循环的执行过程如下:1.shell 变量 var 被设置等于 list 中的第一个字符。2.list A 中的命令会被执行。3.shell 变量 var 被设置等于 list 中下一个字符。4.list A 中的命令被执行。5.循环会持续执行,直到每一个 list 中的条目都执行过循环为止。8.for 循环的例子例 A:$ cat example_Afor NAME in $

3、(grep home /etc/passwd | cut -f1 -d:)domail $NAME mtg.minutesecho mailed mtg.minutes to $NAMEdone例 B$ cat example_Bfor FILE in *doiftest -d $FILEthenls -F $FILEfidonefor 结构是一种非常灵活的循环结构,它能够让循环贯穿任何能产生的列表。使用命令替代可以很容易产生生成列表,就像第一个例子使用管道和过滤器可以产生一个列表。如果你要求多次存取相同的列表,你也许想要将它存储到个文件中。你可以使用 cat 命令来为你的 for 循环产生列

4、表,正如下例所示:$ cat studentsuser1user2user3user4$ cat for_student_file_copyfor NAME in $(cat students)docp test.file /home/$NAMEchown $NAME /home/$NAME/test.filechmod g-w,o-w /home/$NAME/test.fileecho done $NAMEdone$存取命令行参数你可以从命令行参数来产生 list:for i in $*或者for ido docp $i $HOME/backupscp $i $HOME/backupsdon

5、e done9.break,continue,和 exit 命令break n 中止循环过程的执行,并且跳到下一个命令。continue n停止循环过程的当前一个反复并且跳到循环中的下一个反复过程的开始部分exit n 停止 shell 程序的执行,并且将返回值设置为 n。在许多情况下,你可能需要在循环的正常中止条件满足之前放弃一个循环的执行。break 和 continue 命令提供了一种无条件的流程控制,通常用在遇到一个错误的情况下来中止当前的循环。而 exit 命令用在不能从某种情况下恢复出来而必须中止整个程序的运行的时候。break 命令会中止循环并且将控制权传递到 done 关键字后

6、面的第一个命令。结果是完全跳出这个循环体而继续执行下面的命令。continue 命令有一点不同。当在程序执行过程中遇到这个命令,就会忽略本次循环中剩余的命令,而将控制权交给循环的顶部。这样,continue 命令能让你仅仅中止所有循环中的一个循环过程而继续从当前循环的顶部开始执行。在 while 和 until 循环中,这种处理(continue) 会导致在初始列表的开始部分继续执行,在 for 循环中,会将变量设置为列表中的下一个条目,然后继续执行循环。exit 命令停止执行当前的 shell 程序,并且根据提供的参数为这个 shell 程序设置一个返回值,如果没有提供返回值参数,当前的 s

7、hell 程序的返回值会被设置为在 exit 命令之前执行的命令的返回值。注意:循环的流程控制在正常的情况下应当是通过设置循环开始部分的条件( while,until),或者是列表中的条目都循环完的( for),的情况来结束循环。而对循环过程进行中断操作仅仅应当在循环执行期间遇到没有规律的或者是错误的条件的时候才应当使用 。10.break 和 continue 的例子whiletruedoecho “Enter file to remove: c“read FILEif test ! -f $FILEthenecho $FILE is not a regular filecontinuefi

8、echo removing $FILErm $FILEbreakdone这个例子显示 break 和 continue 命令的一次有效的使用。这个命令的执行是在while 循环的 test 条件为真的情况下,会始终产生一个为真的结果;这意味着这个循环会是一个无限的循环,除非循环体中的某些命令能中止循环的运行(这就是 bread命令需要做的) 。如果输入的文件不是一个普通文件,一个错误信息会打印,同时continue 命令会提醒用户再输入一次文件名。如果这个文件是个普通的文件,它会被删除,并且 break 命令被用来跳出这个无穷循环。11.shell 编程之循环总结 let expression 计算一个算术表达式(expression) 计算一个算术表达式while condition is true do .done whileuntil condition is true do . doneuntilfor var in list do . done forbreak nbreak out of loopcontinue n 中止当前循环中的一次循环过程exit n 中止这个程序

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报