- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Chapter10更结构化的命令选编
Chapter10 更结构化的命令
在以往的章节中,你看到如何通过检查命令的输出和变量的值来处理一个脚本程序的流程。在这一章节中,我们将会继续观察结构化的命令去控制你的脚本的流程。你将看到如何执行重复的过程,通过一组命令,直到一个指示条件已经满足的命令,可以循环。本章讨论和论证原因,同时,直到给出bash shell循环指令。
The for Command
迭代通过一系列命令是常见的编程实践。你经常变量var包含列表中的当前值第一个循环使用列表中的第一个值第二个循环使用第二个值等等直到列表中的数字都被用过读取列表中的值’\n’
增加这个状态在你的脚本中表明,bash shell忽视空格和标签在数据值中。把这个应用到前面的脚本,形式如下:
现在,外壳脚本可能在列表中使用包含空格的值。这儿有ISF环境变量更优秀的应用。你想迭代文件中的所有值,可以用冒号分开。所有你需要去做的就是去设置ISF值给一个冒号:
ISF= :
如果你想指定一个以上的ISF的特征,只是它们串在一起的作业线:
IFS=$’\n’ : ; ”
本文使用换行符,冒号,分号,双进行标记字符作为字段分隔符
最终,你可以使用命令去自动迭代文件目录。为此,你必须使用一个在文件或路径名通配符。这迫使外壳使用文件通配符。文件通配符是生产的文件或路径名指定通配符匹配的过程。
当你不知道所有的文件夹时,这一功能有利于在一个目录中处理文件:
该命令迭代了home / rich / test /的结果。代码使用测试命令测试每个输入去看它是一个目录或一个文件。
注意在这个例子中我做的有点不同如果测试:
在Linux中目录和文件名包含空格是完全合法的。适应的,在双引号中你应该附上$文件变量。如果没有,如果运行一个文件或目录包含空格,你会得到一个错误的指令:
bash shell解释附加词作为参数在测试命令,导致一个错误。
你也可以把目录搜索方法和列表方法在相同的声明中,通过列出一系列命令的目录的通配符:
for语句首先使用文件globbing遍历列表文件,结果从通配符,那么它遍历列表中的下一个文件。你可以将任意数量的通配符遍历列表中的条目。
The C-Style for Command(c风格的命令) 如果你用C程序语言做任何人程序,你大概会因为bash?shell使用的命令感到惊讶。在C语言中,一个for循环通常定义一个在每次迭代中自动地改变的变量。通常的,程序员们用这个变量作为一个计数器,也会在每次迭代中增加或递减计数器。指令的bush也可以提供这个功能。本节展示如何使用一个c风格的命令在bash?shell脚本。C语言指令C语言指令有一个特定的方法用于指定一个变量,一个必须为迭代的继续保持真实的条件,和一种为每次迭代改变变量的方法。当指定的条件出错时,for循环停止。条件方程用标准的数学符号定义。例如,取C语言代码:这个代码产生一个简单的迭代循环,在那里变量i被用来作为一个计数器。第一部分分配一个默认值给变量,第二部分定义条件在循环迭代的下面。当定义条件错误时,for循环停止迭代。最后一部分定义迭代过程。在每次迭代后,表达式定义在最后一部分是已执行的。Bash?shell也支持for循环中的变量和C风格的for循环差不多,虽然它有一些细微的差别,包括一些事情会让shell脚本程序员困惑。这是C风格bash?for循环的基本格式C风格bash?for循环的格式能让bash?shell脚本程序员困惑,因为它用C风格变量参照代替shell风格变量参照。这是C风格for指令:注意接下来的是不遵循bash?shell方法的标准的一些事情:变量的赋值可以包含空格。条件变量不在一个符号之前。迭代过程的方程不用expr命令格式。
for循环通常应该迭代通过所有列表中的特定值。有史以来,当假定的条件是满意的,shell执行break命令,停止循环。
这项技术也适用于一段时间,直到循环的出现。
当循环结束时,如果满足条件,执行中断命令。
Breaking out of an inner loop(打破一个内部循环)
当您使用多个循环时,中断命令会自动终止您的最内层循环。
for语句在经过内环和迭代,直到B变量等于100。但是,if-then语句在内环和?ES,当B变量的值等于5,执行中断命令。注意的是,即使内环与外环中断命令终止,外环继续工作,作为专业版。
Breaking out of an outer loop(外环的断裂)
有时,当你处在一个内部循环时,却需要阻止外循环。中断命令包括一个命令行参数值。
中断n
其中n表示循环水平突破。默认情况下,n是一个指示,表示打破当前循
您可能关注的文档
最近下载
- 2024年怒江州福贡县义务教育教师专项招聘真题.docx VIP
- 《搭石》第2课时公开课教学课件【部编人教版五年级语文上册】.ppt VIP
- 《海岸工程混凝土结构耐久性技术标准》GBT51464-2024知识培训.pptx VIP
- AQT3034—2022化工过程安全管理导则.pdf VIP
- 巴中市巴州区事业单位考试考试题库2024.docx VIP
- 小学数学新西师版一年级上册全册教案(2024秋).doc
- 2025年秋新教科版三年级上册科学全册精编教案教学设计(新教材).docx
- 《第4单元 花卉盆景技术——水仙盆景的设计与制作课件》初中劳动技术沪科教版七年级课件7216.ppt VIP
- 2025年新教材道德与法治三年级上册第一单元《做学习的主人》教案设计.docx VIP
- 惠普 HP E87640 E87650 E87660 彩色数码复印机中文维修手册.pdf VIP
文档评论(0)