一些很好的shell诀窍.doc

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
一些很好的shell诀窍

连续循环 现在来看循环,它允许您执行重复任务,比如对一组文件执行一些操作或命令。Shell 有几种构造循环的方法。 构造 for 循环 最常见的循环结构是 for 循环。 首先定义一个变量作为循环的名称,提供一组成员,可以是包括整数和文件名在内的任何单词,然后提供每次重复执行的命令。每个命令都以分号结束 (;),整个命令组以位于单词 do 和 done 之间。清单 20 描述了它的结构。 清单 20. Shell 中循环的结构 for loopname in members do command; command; ... command; done 在循环的第一次重复中,loopname 变量获取第一个成员的值。然后 loopname 的值被清单中下一个成员的值替代,接下来它继续重复直到遍历所有成员。 在大多数 Shell 中,do 和 done 都可以被大括号所替代,如清单 21 中所示。 清单 21. Shell 循环的替代结构 for loopname in members { command; command; ... command; } 键入清单 22 中的文本来运行包含三个成员的简单循环: 清单 22. 使用循环来改变变量的值 $ for i in 1 2 3 { VAR = $(($VAR+$i)) echo $i:$VAR } 1:1 2:3 3:6 $ 针对目录中的每个文件执行命令 您可以使用循环针对给定的一组文件执行一个或一组命令。如果您提供文件的名称作为 for 循环的成员,那么循环按您提供名称的顺序在每个文件上执行操作。您可以两次提供同一个文件,循环将依次对该文件执行操作。在您的 example 目录中尝试使用清单 23 中的文本执行上述操作。 清单 23. 利用一组文件构造循环 $ cd ~/example $ ls A B C $ for file in C B B C { echo $file } C B B C $ 要对同一目录下的所有文件执行操作,可以使用星号 (*) 作为循环的唯一成员,如清单 24 中所示。Shell 将星号扩展为目录中的所有文件。然后,对于循环中您要对所有文件执行的命令,使用 loopname 变量作为合适的参数或选项。 清单 24. 针对目录中的所有文件执行同一命令 $ ls A B C $ for file in * { mv $file $((0x$file)) } $ 如果您正在运行本教程中的所有示例,那么您的 example 目录中的内容应该已改变: $ ls 10 11 12 $ 发生的情况是循环中的 mv 命令将文件的名称从十六进制值(通过在名称的前面插入 0x 构成)更改为与它相等的十进制值。 构造 while 循环 您可以构造一种当满足某些条件就一直运行的循环。使用 while 条件语句来实现这一目标,其格式如清单 25 所示。 清单 25. Shell while 循环的结构 while [ condition ]; do command; command; ... command; done 在循环中,condition 可以是使用操作符(请参见表 3)构建的语句,或者可以像一个变量名那样简单。只要值是非 0 的,就代表真。 表 3. 常用 Shell 操作符 操作符 描述 -eq 等于 -ne 不等于 -lt 小于 -le 小于等于 -gt 大于 -ge 大于等于 构造 while 循环时,有一些注意事项需要牢记在心。首先,在条件与将它括起来的括号之间必须留有空白字符。其次,如果在条件中将变量用于数字比较,那么在 while 语句之前必须首先定义该变量。 键入清单 26 中的文本以执行一个简短的 while 循环: 清单 26. 使用 while 循环更改变量 $ VAR=0 $ while [ $VAR -lt 10 ]; do echo $VAR; VAR=$(($VAR+1)); done 0 1 2 3 4 5 6 7 8 9 $ 构造 until 循环 until 条件语句与 while 相似并使用相同的操作符,但是它们的行为相反。它只有当条件为假时才执行循环,并且循环持续重复直到 给定的条件为真。它的格式在清单 27 中说明。 清单 27. Shell until 循环的结构 until [ condition ] ; do command; command; ... command; done 通过键入清单 28 中所示的内容尝试运行一个简短的 until 循环: 清单 28. 使用 until 循环更改变量 $ VAR=10

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档