shell脚本编程之循环语句

  在运行脚本时重复执行一系列的命令是很常见的,这时我们就需要使用循环语句来达到这个目的。

一、for命令

  格式:for 变量 in 列表;do 

        循环体

      done

  for命令会遍历列表中的每一个值,并且在遍历完成后退出循环。

  列表形式有以下几种:

    1、在命令中定义的一系列的值;

    2、变量;

    3、命令;

    4、目录;

    5、文件。

  实例1:

1.jpg

1.jpg

   上例中使用{初始值..结束值}格式来表示一个区间的数值。

  实例2:以变量作为列表:

2.jpg

  实例3:用命令生成列表:

2.jpg

   上例中使用seq命令来生成列表,seq命令的格式为:seq [初始值 步长] 终止值

3.jpg

    以上两个例子中使用反引号将得到命令运行的结果。

  实例4:将目录作为列表:

4.jpg

二、C语言风格的for命令

  格式:for (( 变量赋值;循环终止条件;步长 )); do 

        循环体

      done

  实例:求从1加到100的和:

5.jpg

三、until命令  

  格式:until 条件; do 

        statement

          …

      done 

  until命令中的条件满足时则会退出循环。

  实例:

6.jpg

四、while命令

  格式:while 条件; do

        statement

          …

      done

  while命令当条件满足时则进入循环。

  实例:

7.jpg 

五、控制循环

  1、break命令

   作用:退出正在进行中的循环。

   实例:如果变量i为3则退出循环。

1.jpg

  2、continue命令

    作用:提前进入下一轮循环。

    实例:将1到20和51到100之间的数相加:

2.jpg

六、while的殊用法

  1、死循环

    格式:while :; do     

         语句

        done

    实例:

1.jpg

  2、将文件内容逐行读入循环中

    格式:while read 变量名; do 

         循环体

        done < 文件

    实例:逐行读入/etc/passwd文件的内容:

2.jpg

 

原创文章,作者:petmaster,如若转载,请注明出处:http://www.178linux.com/10762

(0)
petmasterpetmaster
上一篇 2016-01-01 15:00
下一篇 2016-01-05 12:58

相关推荐

  • python面向对象学习第一周

     面向对象的思想 一个具体对象的属性方法,都有各个来源,来源于类,比如消化类,有各种各样的消化模式,人类的只是其中一种 另一种思想方法,类有各种属性方法,人类有很多的属性,一个人应该包括其中的属性,只是值上可能有不同,不同人群也有他们的特征属性和方法     类是对象的抽象,但是类本身也是对象, 对象是一个类的实例. 类的属性:类变量,对象方法,类方法,静态…

    Linux干货 2017-11-13
  • 网络基础知识

    网络基础知识: 网络设备 TCP/IP协议 ARP协议 网络设备:     HUB集线器: 工作在物理层,没有学习能力,作用在于把各种节点汇聚在以它为中心的节点上,同时也有传输数据的作用,由于没有学习能力,只能以广播的形式将数据发送给与它相连的所有节点。 特点:共享带宽,半双工     &…

    Linux干货 2016-09-02
  • linux的基础小命令

    1、ifconfig,显示主机的IP地址 2、echo 用法echo [short-option]… [string]…     -n:不进行换行     string可以使用单引号或双引号引用变量,单引号变量内容不会替换,双引号会替换  &nb…

    Linux干货 2016-10-30
  • 文件的权限、扩展属性以及facl

    大纲: 一、前言 二、普通权限 三、特殊权限 四、ext文件的扩展属性 五、文件的访问控制列表(facl) 一、前言 linux中常见的权限有读(r)、写(w)、执行(x),还有3个特殊的权限。因此下面就从普通权限开始介绍起 二、普通权限 rwx:读 写 执行 rwxr-xr-x : 读写执行 读_执行 读_执行  (分别对应)属主 属组…

    Linux干货 2015-05-04
  • 马哥教育网络班N22期+第7周作业

    1、创建一个10G分区,并格式为ext4文件系统;(1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl;mke2fs -t ext4 -b 2048 -L MYDATA -m 2 /dev/sdb1tune2fs -o acl /dev/sdb1(2) 挂载至/data/mydata目录,要求挂载时禁止…

    Linux干货 2016-11-14