(032) Linux之shell流控制for循环

十年运维系列之基础篇 - Linux

作者:曾林 

联系:[email protected]

网站:www.jplatformx.com

版权:文章未经同意请勿转载


一、引言

  本章是关于流控制的最后一章,我们将学到一个全新的shell循环结构,那就是for循环结构,因为for循环采用的是在循环期间进行序列处理的机制,所以它不同于while循环和until循环。事实证明,for循环是对编程非常有用的。因此for循环在bash脚本中是一种非常流行的结构。

  for命令在bash脚本中存在两种形式。

 

二、for:传统的shell形式

  原始的for命令语法如下:

for variable [in words]; do
    commands
done

  其中,variable是一个在循环执行时会增量的变量名,words是一列将按顺序赋给变量variable的可选项,commands部分是每次循环时都会执行的命令。

  for命令在命令行上是很有用的。如下图展示:

技术分享

  需要注意的是,对于可选项只需要空格隔开即可。空格就是可选项的隔开符。

  for循环真正强大的功能在于创建字符列表的方式有很多种。例如,可以使用花括号扩展的方式,如下所示:

技术分享

  或使用路径名扩展方式,如下所示:

技术分享

  如果for命令中的选项部分被忽略的话,那么for循环默认处理该位置参数。如下代码和运行图例如下:

技术分享

 

三、for:C语言形式  

  最近的bash版本已经加入了第二种for命令语法,它类似于C语言形式,并且许多的编程语言都支持这种形式。其语法如下:

for (( expression1; expression2; expresson3 )); do
    commands
done

  其中expression1、expression2、expression3为算术表达式,commands是每次循环都要执行的命令。

  就执行结果而言,这种形式等同于如下结构。

(( expression1 ))
while (( expression2 )); do
    commands
    (( expression3 ))
done

  expression1用来初始化循环条件,expression2用来决定循环何时结束,expression3在每次循环末尾执行。

  如下将具体展示用法和图例:

技术分享

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。