Loading... <p> 在运行脚本时重复执行一系列的命令是很常见的,这时我们就需要使用循环语句来达到这个目的。</p> <p><strong><span style="font-size: 18px">一、for命令</span></strong></p> <p> 格式:for 变量 in 列表;do </p> <p> 循环体</p> <p> done</p> <p> for命令会遍历列表中的每一个值,并且在遍历完成后退出循环。</p> <p> 列表形式有以下几种:</p> <p> 1、在命令中定义的一系列的值;</p> <p> 2、变量;</p> <p> 3、命令;</p> <p> 4、目录;</p> <p> 5、文件。</p> <p> 实例1:</p> <p style="text-align:center"><img src="//cto.wang/usr/uploads/2016/07/20160703160913-55.jpg" title="1451812909445180.jpg" alt="1.jpg" /></p> <p style="text-align:center"><img src="//cto.wang/usr/uploads/2016/07/20160703160913-43.jpg" title="1451834452379687.jpg" alt="1.jpg" style="text-align: center" /></p> <p> 上例中使用{初始值..结束值}格式来表示一个区间的数值。</p> <p> 实例2:以变量作为列表:</p> <p style="text-align:center"><img src="//cto.wang/usr/uploads/2016/07/20160703160913-3.jpg" title="1451813025841146.jpg" alt="2.jpg" /></p> <p> 实例3:用命令生成列表:</p> <p style="text-align:center"><img src="//cto.wang/usr/uploads/2016/07/20160703160913-91.jpg" title="1451834846978770.jpg" alt="2.jpg" /></p> <p> 上例中使用seq命令来生成列表,seq命令的格式为:seq [初始值 步长] 终止值</p> <p style="text-align:center"><img src="//cto.wang/usr/uploads/2016/07/20160703160913-43-1.jpg" title="1451813301230401.jpg" alt="3.jpg" /></p> <p> 以上两个例子中使用反引号将得到命令运行的结果。</p> <p> 实例4:将目录作为列表:</p> <p style="text-align:center"><img src="//cto.wang/usr/uploads/2016/07/20160703160913-78.jpg" title="1451834311885880.jpg" alt="4.jpg" /></p> <p><strong><span style="font-size: 18px">二、C语言风格的for命令</span></strong></p> <p> 格式:for (( 变量赋值;循环终止条件;步长 )); do </p> <p> 循环体</p> <p> done</p> <p> 实例:求从1加到100的和:</p> <p style="text-align:center"><img src="//cto.wang/usr/uploads/2016/07/20160703160913-35.jpg" title="1451835193946183.jpg" alt="5.jpg" /></p> <p><strong><span style="font-size: 18px">三、until命令 </span></strong> </p> <p> 格式:until 条件; do </p> <p> statement</p> <p> …</p> <p> done </p> <p> until命令中的条件满足时则会退出循环。</p> <p> 实例:</p> <p style="text-align:center"><img src="//cto.wang/usr/uploads/2016/07/20160703160913-80.jpg" title="1451835795903908.jpg" alt="6.jpg" /></p> <p><strong><span style="font-size: 18px">四、while命令</span></strong></p> <p> 格式:while 条件; do</p> <p> statement</p> <p> …</p> <p> done</p> <p> while命令当条件满足时则进入循环。</p> <p> 实例:</p> <p style="text-align:center"><img src="//cto.wang/usr/uploads/2016/07/20160703160913-73.jpg" title="1451835996609630.jpg" alt="7.jpg" /> </p> <p><strong><span style="font-size: 18px">五、控制循环</span></strong></p> <p> 1、break命令</p> <p> 作用:退出正在进行中的循环。</p> <p> 实例:如果变量i为3则退出循环。</p> <p style="text-align:center"><img src="//cto.wang/usr/uploads/2016/07/20160703160913-24.jpg" title="1451837151654175.jpg" alt="1.jpg" /></p> <p> 2、continue命令</p> <p> 作用:提前进入下一轮循环。</p> <p> 实例:将1到20和51到100之间的数相加:</p> <p style="text-align:center"><img src="//cto.wang/usr/uploads/2016/07/20160703160913-21.jpg" title="1451837327444231.jpg" alt="2.jpg" /></p> <p><strong><span style="font-size: 18px">六、while的殊用法</span></strong></p> <p> 1、死循环</p> <p> 格式:while :; do </p> <p> 语句</p> <p> done</p> <p> 实例:</p> <p style="text-align:center"><img src="//cto.wang/usr/uploads/2016/07/20160703160914-7.jpg" title="1451838566432871.jpg" alt="1.jpg" /></p> <p> 2、将文件内容逐行读入循环中</p> <p> 格式:while read 变量名; do </p> <p> 循环体</p> <p> done < 文件</p> <p> 实例:逐行读入/etc/passwd文件的内容:</p> <p style="text-align:center"><img src="//cto.wang/usr/uploads/2016/07/20160703160914-29.jpg" title="1451839645380871.jpg" alt="2.jpg" /></p> <p> </p> <p></p> <p></p> <p></p> 最后修改:2021 年 12 月 10 日 10 : 53 AM © 允许规范转载 赞赏 如果觉得我的文章对你有用,请随意赞赏 赞赏作者 支付宝微信