循环语句for、while、until

作用:

   循环语句的作用是它可以让一段代码重复的执行,直到所需条件不满足为止。

在linux中变量的赋值方式有三种:

      第一:直接等于号赋值

      第二:通过read交互赋值

      第三:for循环的赋值

bash脚本中的循环有三种:

      for循环

      while循环

      until循环

循环的执行要有两个条件,进入和退出条件

      进入条件:条件满足时才进入循环

      退出循环:每个循环都应该有退出条件,以有机会退出循环

   

 for循环:

      条件的两种格式:

           (1)遍历列表

           (2)控制变量

  格式:

     for 变量 in 列表;do

         循环体            把列表中的值一遍遍的赋值给变量

     done

 进入条件:只要列表中有元素,即可进入循环

 退出条件:遍历列表后退出

列表的生成方式:

        (1)直接给出

        (2)整数列表

             (a){ start…end }, 例如:{1..100}

              (b) seq [start[步长]] last 例如:seq 1 2 100

        (3)返回列表命令  例如:$(ls /var/*)

        (4)glob通配符匹配

        (5)变量引用 例如:$@ $* …

举例演示1:

根据选项批量创建用户、删除用户

for循环1.png

for循环2.png   

举例演示2:  

打印九九乘法表

for九九表.png

举例演示3:

打印国际象棋棋盘

for象棋盘.png

for循环的特殊用法:

格式:

  for ((控制变量初始化;控制条件判断表达式;控制变量的修正语句))

        ①           ②            ③

 do

       循环体

        ④

 done

解释:

   控制变量初始化:仅在循环代码开始运行时执行一次

   控制条件判断表达式:是指给定的进入和退出判断条件,这里的条件判断直接使用> < = 这些符号就可以了 例如:i<=100

   控制变量的修正语句:每轮循环结束会先进行控制变量的修正运算,而后再做条件测试。

执行的顺序是:①–②–③–④–③–②…   当②判断为假时退出

举例演示1

求10以内的所有正整数之和

for正整数之和.png

举例演示2

打印九九乘法表

for九九表2.png

while循环:

格式:

   while 条件 ;do

      循环体

     循环控制变量修正表达式  

   done

while循环的进入与退出条件

   进入条件:条件测试为真时进入循环

   退出条件:条件测试为假时结束循环

累加的功能:可以实现把一个数字列表的值依次加到某一个变量原有的值之上,从而能求出指定范围内的整数之和。

exit命令:退出整个脚本

举例演示:

通过ping命令测试出10.1.252.0这个网段所有主机的在线状态

while ping脚本.png

举例演示2:

打印国际象棋棋盘

while 象棋.png

while循环的特殊用法 (遍历文件的每一行)

 格式:

   while read 变量;do

     循环体

   done < /PATH/FROM/SOMEFILE

执行的方式为:依次读取/PATH/FROM/SOMFILE文件的每一行,且将其赋值给变量

举例演示:

显示出系统中所有用户名及所对应的shell,并计算总用户数

while特殊用法.png

until 循环:

  格式:

    until 条件;do

        循环体

      循环控制变量的修正表达式

    done

until的进入和退出条件:

    进入条件:条件测试为假使进入循环

   退出条件:条件测试为真时结束循环

until循环的与while循环正好相反

举例演示:

用until循环打印九九乘法表

until循环九九.png

计算100以内的偶数之和,基数之和

偶数:

until偶数之和.png

基数:

until 基数之和.png

循环控制语句:

continue命令

 continue:提前结束本轮循环,而直接进入下一轮循环判断,不应该写在循环的最后,没有意义

 continue是当循环中遇到它就不执行它以下的操作了,而是直接返回到指定的层继续循环

 continue后面也可以跟数字,表示结束本轮循环后跳至哪一层的循环,数字的大小是从内层往外数,

 例如:continue 2 表示结束本轮循环后直接退回到最内层往外数的第二层开始循环。

break命令

 break是提前跳出循环,直接结束整个循环,去执行循环以下的操作,可以写在循环的任何位置

sleep命令:可以让脚本的睡眠一会在执行,后可跟数字,默认一秒为单位,表示多少秒后再执行脚本,可以设置天,小时等等

            

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

(0)
ZJMZJM
上一篇 2016-08-22 08:44
下一篇 2016-08-22 08:44

相关推荐

  • 前两周linux基础知识总结

    linux用户权限管理 软链接与硬链接 输入输出重定向 文本处理三剑客vim sed awk 包管理rpm yum 源码包编译安装

    Linux干货 2018-03-17
  • N25 – 第二周博客作业

      Linux上的文件管理类命令有哪些,其常用的使用方法及相关示例演示 more: more命令非常简单,只用more file即可,但是more命令有一个特点,就是翻屏至文件尾部后自动退出 less: less命令就是在使用man时是一样的,因为man手册就是调用less来查看的  head: head命令用来查看文件的前#行,#默认为…

    Linux干货 2016-12-07
  • 梦想走向现实的地方

    曾经羡慕打字快的同学指尖能在键盘上优雅地跳舞,于是我有努力练习打字。 曾经羡慕同事能很神奇地把一个交换机的端口关闭,让那端口下面的人都不能上网,于是我努力学习交换机、路由。 现在我羡慕一个人能管很多服务器的人,于是我开始学习linux了。 努力成为一个也能管很多服务器的人,因为我也想别人叫我运维工程师

    Linux干货 2016-10-25
  • 第四周博客分享

                    时间匆匆,转眼来马哥已经快一个月了,这一个月对我来说是收获满满,每天都在学到新的东西。       &nbs…

    2017-08-06
  • N21天天第十一周课程练习

    1、详细描述一次加密通讯的过程,结合图示最佳。 SSL协议基础: SSL协议位于TCP/IP协议与各种应用层协议之间,本身又分为两层: 1)SSL记录协议:建立在可靠传输层协议(TCP)之上,为上层协议提供数据封装、压缩、加密等基本功能。 2)SSL握手协议:在SSL记录协议之上,用于实际数据传输前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。 SS…

    Linux干货 2016-10-09
  • 使用monit搭建一个监控系统

     上周用monit搭建或者说定制了一个监控系统,来监控服务器发生事情。当然了主要是监控异常,因为我们的产品属于服务器类型,很多进程都daemon,要不停的运行。我们搭建监控目的不过是出现问题能够及时的知道,平时可从web UI上看到整个系统的状况,同时它本身要轻量级,不要影响性能。当然了类似的产品很多了,比如Ganglia,我在老科长波哥曾经搭建过…

    Linux干货 2015-02-15