- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
shell编程—
shell编程—shell编程—循环语句(2)
shell编程之循环语句(2)
for语句
,每完成一次循环过程就将var
,每完成一次循环过程就将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,in,do和 赋值会贯穿for循环的执行过程中, 一次循环执行都要将一个串赋值给
var。done,var代表一个 shell变量的名字,这个变量的 list是一串由空格或者tab
var。
for循环的执行过程如下:
l.shell变量var被设置等于list中的第一个字符。
2.list A中的命令会被执行。
3.shell变量var被设置等于list中下一个字符。
4.list A中的命令被执行。
5.循环会持续执行,直到每一个 list中的条目都执行过循环为止。
for循环的例子
例A:
$ cat example_A
for NAME in $(grep home /etc/passwd | cut -f1 -d:) do
mail $NAME inlg.minulcs
echo mailed mtg^minutes 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
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:
list:
或者
for ido
for i
do
op $i $ HOME backups
done
do
cp $i SHOME/backups
done
break [n] continue [n] 程的开始部分exit [n]break,continue,和
break [n] continue [n] 程的开始部分
exit [n]
中止循环过程的执行,并且跳到下一个命令。
停止shell程序的执行,并且将返回值设置为
停止shell程序的执行,并且将返回值设置为
n。
在许多情况下,你可能需要在循环的正常中止条件满足之前放弃一个循环的执行。
break和continue命令提供了一种无条件的流程控制, 通常用在遇到一个错误的情况
下来中止当前的循环。而exit命令用在不能从某种情况下恢复出来而必须中止整个程 序的运行的时候。
break命令会中止循环并且将控制权传递到 done关键字后面的第一个命令。结果是
完全跳出这个循环体而继续执行下面的命令。
continue命令有一点不同。当在程序执行过程中遇到这个命令, 就会忽略本次循环中
剩余的命令,而将控制权交给循环的顶部。这样, continue命令能让你仅仅中止所有
循环中的一个循环过程而继续从当前循环的顶部开始执行。
在while和until循环中,这种处理(continue)会导致在初始列表的开始部分继续执行, 在for循环中,会将变量设置为列表中的下一个条目,然后继续执行循环。
exit命令停止执行当前的 shell程序,并且根据提供的参数为这个 shell程序设置一个
返回值,如果没有提供返回值参数,当前的 shell程序的返回值会被设置为在 exit命
令之前执行的命令的返回值。
注意:循环的流程控制在正常的情况下应当是通过设置循环开始部分的条件
(while,until),或者是列表中的条目都循环完的(for),的情况来结束循环。而对循环 过程进行中断操作仅仅应当在循环执行期间遇到没有规律的
文档评论(0)