的bash壳时提供了一个极好的功能编写脚本。这包括很多方面循环一堆数据,这样您就可以完成很多只有一个运行的脚本。无论你是遍历一大群数值,天的星期,用户名,话说,文件,或完全不同的东西,bash有一个选项,可以方便你。
为,,直到循环
第一件事你需要知道的关于循环bash是,有几个基本命令使用。的而循环将循环只要一些特定的适用条件。的直到循环将循环,直到某个条件成为真的,为循环将通过一系列价值观不管他们的起源。
例如,使用而,你可以循环数小于100时,循环剩余的天月见下面的脚本(我们抓住当前天使用日期命令和最后一天的最后一个字符串的输出卡尔命令)或循环完全不同的东西。
# / bin / bash #天月天=日期| awk的{打印3美元‘}’# numdays月天数=负责人卡尔尾巴| 2 | 1 | awk '{打印$ NF}“当[天勒numdays美元]echo $ ((+ +))
当我们运行这个脚本的时候,我们应该看到是这样的:
remaining_days 27 28 29 30美元
下一个循环,直到同事登录脚本。只要用户的登录的计数为零(即。,he or she is not logged in), we display “waiting” and then wait another 60 seconds. Once the user is logged in, the而循环退出,在未来的60秒,就会显示一个消息确认用户的登录。
# !/bin/bash echo - n“用户等待>”阅读用户而[谁| grep $ user | wc - l ' = = 0]做呼应等待睡眠60 echo $ user在线完成
的直到循环版的脚本非常相似。
# !/bin/bash echo - n“用户等待>”阅读用户直到[谁| grep $ user | wc - l的gt 0]做呼应等待睡眠60
在为循环,我们通过一系列的值,但是有许多命令,您可以使用它们来生成这些值。
的而和直到命令进一步解释如何重复一个Linux命令直到成功吗
遍历字母和数字
您可以遍历一串数字或字母通过指定一个值的范围{启动,停止}格式如下的例子。请注意,您可以从任何你想要的价值。你不需要从一个“a”或“0”。
$ {. . f}的信;做echo $信;做了b e c d f
在接下来的例子中,我们从5开始,不是1,避免与一个回车echo - n命令。
${5 . . 11}的数量;echo - n”美元数量”;完成5 6 7 8 9 10 11美元
你甚至可以反向数字或字母的顺序。这里有几个例子:
$ {z . . x}的信;做echo $信;做z y x
数量的美元{11 . .7}> > echo $数量>做了11 10 9 8 7
永远循环
永远循环的最简单方法是使用一个“而真正的”循环。循环才会停止运行,如果你杀了它——例如,一个C ^。如果它是包含在在后台运行一个脚本,您可以使用一个杀了命令(例如,杀死654321)终止脚本。
美元,而真正> >回声你好>睡眠60 >做了你好你好^ C
更多关于循环的信息永远是可用的如何在bash循环永远在Linux上吗。
逃避和打破循环继续
的打破和继续命令允许您完全跳出循环(打破)或重新启动循环的顶部(继续),跳过之间的任何命令继续命令和循环的结束。
的打破和继续命令是更详细地解释使用break和继续退出循环。
的褶皱命令可用于一个文件或字符串分割成同样大小的碎片。默认长度是80个字符。在本例中,我们将字符串分成11-character块的c11(11个字符)的选择。
美元折c11 trythis这个文件h一些国际扶轮diculously长水资源的字符串。哦,好吧。
当你使用褶皱命令在一个为循环,然而,你需要记住,任何结果字符串包含一个空白将导致一个或多个额外的循环,因为为休息在每个blank-separated字符串。
美元的线的褶皱c10 trythis”> >做呼应- n“线”美元> echo - n”:“> echo $ | wc - c >这样行:5个文件:5:4:2数:4荒谬:11光年:3长:5 ch: 3 aracter: 8圣:3戒指。:哦,7:4。:6
更多的褶皱命令可以找到利用褶皱文本更具可读性和使用折叠命令驱动循环。
循环词词
通过单词列表循环使用为循环,您可以运行下面的命令。注意,撇号需要逃出来,以免被解释为一个字符串的开始。
词的所有美元\ ' s好,一切都好;echo $词;完成所有的终成眷属
如果你想通过一年的十二个月循环,您可以使用一个命令如下:
美元的月'地区mon | sed ' s /; / / g ';echo $月;完成1月2月3月4月5月6月7月8月9月10月11月12月
上面的命令中使用语言环境命令获取一个月,列表sed分号分隔线分解成个人几个月。
总结
循环在Linux上的脚本和命令行上显然是最好的技术来完成很多在很短的时间和用最少的努力,特别是如果你把你的循环到脚本,您可以根据需要经常运行,而无需每次思考所有的细节。