- 1、本文档共12页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
一些很好shell诀窍
连续循环
现在来看循环,它允许您执行重复任务,比如对一组文件执行一些操作或命令。Shell 有几种构造循环的方法。
构造 for 循环
最常见的循环结构是 for 循环。
首先定义一个变量作为循环的名称,提供一组成员,可以是包括整数和文件名在内的任何单词,然后提供每次重复执行的命令。每个命令都以分号结束 (;),整个命令组以位于单词 do 和 done 之间。 HYPERLINK /developerworks/cn/education/aix/au-unixtips4/section6.html \l listing20 清单 20 描述了它的结构。
清单 20. Shell 中循环的结构
for loopname in members
do
command;
command;
...
command;
done
在循环的第一次重复中,loopname 变量获取第一个成员的值。然后 loopname 的值被清单中下一个成员的值替代,接下来它继续重复直到遍历所有成员。
在大多数 Shell 中,do 和 done 都可以被大括号所替代,如 HYPERLINK /developerworks/cn/education/aix/au-unixtips4/section6.html \l listing21 清单 21 中所示。清单 21. Shell 循环的替代结构
for loopname in members
{
command;
command;
...
command;
}
键入 HYPERLINK /developerworks/cn/education/aix/au-unixtips4/section6.html \l listing22 清单 22 中的文本来运行包含三个成员的简单循环:清单 22. 使用循环来改变变量的值
$ for i in 1 2 3
{
VAR = $(($VAR+$i))
echo $i:$VAR
}
1:1
2:3
3:6
$
针对目录中的每个文件执行命令
您可以使用循环针对给定的一组文件执行一个或一组命令。如果您提供文件的名称作为 for 循环的成员,那么循环按您提供名称的顺序在每个文件上执行操作。您可以两次提供同一个文件,循环将依次对该文件执行操作。在您的 example 目录中尝试使用 HYPERLINK /developerworks/cn/education/aix/au-unixtips4/section6.html \l listing23 清单 23 中的文本执行上述操作。
清单 23. 利用一组文件构造循环
$ cd ~/example
$ ls
A B C
$ for file in C B B C
{
echo $file
}
C
B
B
C
$
要对同一目录下的所有文件执行操作,可以使用星号 (*) 作为循环的唯一成员,如 HYPERLINK /developerworks/cn/education/aix/au-unixtips4/section6.html \l listing24 清单 24 中所示。Shell 将星号扩展为目录中的所有文件。然后,对于循环中您要对所有文件执行的命令,使用 loopname 变量作为合适的参数或选项。
清单 24. 针对目录中的所有文件执行同一命令
$ ls
A B C
$ for file in *
{
mv $file $((0x$file))
}
$
如果您正在运行本教程中的所有示例,那么您的 example 目录中的内容应该已改变:
$ ls
10 11 12
$
发生的情况是循环中的 mv 命令将文件的名称从十六进制值(通过在名称的前面插入 0x 构成)更改为与它相等的十进制值。
构造 while 循环
您可以构造一种当满足某些条件就一直运行的循环。使用 while 条件语句来实现这一目标,其格式如 HYPERLINK /developerworks/cn/education/aix/au-unixtips4/section6.html \l listing25 清单 25 所示。
清单 25. Shell while 循环的结构
while [ condition ]; do
command;
command;
...
command;
done
在循环中,condition 可以是使用操作符(请参见 HYPERLINK /developerworks/cn/education/aix/au-unixtips4/section6.html \l table3 表 3)构建的语句,或者可以像一个变量名那样简单。只要值是非 0 的,就代表真。
表 3. 常用 Sh
您可能关注的文档
- D L Z-2型顶板离层仪研制和应用.doc
- dBm和功率换算.doc
- DCI,我论文.doc
- DEBOX全景移动阳光房-案例和展会图片.doc
- DNA分子结构以和复制上课用.ppt
- DNF常用装备满属性与堆血装指南.doc
- DNS 系统异常流量侦测与处理.ppt
- do 与 does用法专项练习.doc
- E1,CE1,T1,PRI,BRI区别以和接口.doc
- Each 用法.doc
- 2024年江西省高考政治试卷真题(含答案逐题解析).pdf
- 2025年四川省新高考八省适应性联考模拟演练(二)物理试卷(含答案详解).pdf
- 2025年四川省新高考八省适应性联考模拟演练(二)地理试卷(含答案详解).pdf
- 2024年内蒙通辽市中考化学试卷(含答案逐题解析).docx
- 2024年四川省攀枝花市中考化学试卷真题(含答案详解).docx
- (一模)长春市2025届高三质量监测(一)化学试卷(含答案).pdf
- 2024年安徽省高考政治试卷(含答案逐题解析).pdf
- (一模)长春市2025届高三质量监测(一)生物试卷(含答案).pdf
- 2024年湖南省高考政治试卷真题(含答案逐题解析).docx
- 2024年安徽省高考政治试卷(含答案逐题解析).docx
文档评论(0)