您的位置:首页 > 运维架构 > Shell

一文读懂Shell脚本中循环语句for,while,until用法

2017-08-11 20:25 901 查看
很好的一篇讲shell脚本中循环语句的文章,图文并茂,通俗易懂,必须转载~原文链接:http://kling.blog.51cto.com/3320545/1252952循环语句:Bash Shell中主要提供了三种循环方式:for、while和until。一、for循环for循环的运作方式,是讲串行的元素意义取出,依序放入指定的变量中,然后重复执行含括的命令区域(在do和done 之间),直到所有元素取尽为止。其中,串行是一些字符串的组合,彼此用$IFS所定义的分隔符(如空格符)隔开,这些字符串称为字段。for的语法结构如下:
说明:行1,讲串行中的字段迭代放入变量中行2-4,接着将重复执行do和done之间的命令区域,直到串行中每一个字段军处理过为止。流程图:

用例1用for循环在家目录下创建aaa1-aaa10,然后在aaa1-aaa10创建bbb1-bbb10的目录
说明:行2,seq 用于产生从某个数到另外一个数之间的所有整数。行4,在家目录下创建文件夹。行6,在使用一个for循环创建文件夹测试结果:
用例2列出var目录下各子目录占用磁盘空间的大小。
说明:行4,对/var目录中每一个文件,进行for循环处理。行6,如果/var下的文件是目录,则使用du -sh计算该目录占用磁盘空间的大小。测试结果:
二、while循环while循环的语法:
说明:行1,首先进行条件测试,如果传回值为0(条件测试为真),则进入循环,执行命令区域,否则不进入循环,介绍while 命令行3,执行命令区域,这些命令中,应该要有改变条件测试的命令,这样,才有机会在有限步骤后结束执行while循环(除非想要执行无穷循环)。行4,回到行1,执行while命令流程图:

用例1while循环,经典的用法是搭配转向输入,读取文件的内容,做法如下:
说明:行2,使用read有标准输入读取数据,放入变量kuangl中,如果读到的数据非空,就进入循环。行4,把改行数据显示出来行5,将/home/kuangl/scripts/testfile的内容转向输入将给read读取。测试结果:
用例2:
说明:行2-3,声明i和sum为整数型行4,如果条件测试:只要i值小于或者等于10,就执行循环。行6,sum+=i和sum=sum+i是一样的,sum累加上i。行7,i的值递增1,此行是改变条件测试的命令,一旦i大于10,可终止循环。行8,遇到done,回到行6去执行条件测试行9,显示sum的值为55测试结果:
三、until循环while循环的条件测试是测真值,until循环则是测假值。until循环的语法:
说明:行1,如果条件测试结果为假(传回值不为0),就进入循环。行3,执行命令区域。这些命令中,应该有改变条件测试的命令,这样子,才有机会在有限步骤后结束执行until 循环(除非你想要执行无穷循环)。行4,回到行1,执行until命令。流程图:

用例1:
说明:行2-3,声明i和sum为整数型行4,如果条件测试:只要i值未超过10,就进入循环。行6,sum+=i和sum=sum+i是一样的,sum累加上i。行7,i的值递增1,此行是改变条件测试的命令,一旦i大于10,可终止循环。行8,遇到done,回到行6去执行条件测试行9,显示sum的值为10测试结果:
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: