SHELL流程控制之循环

当进行脚本编程时,语句执行的流程控制通常有三种:

顺序执行

选择执行

循环执行

 blob.pngblob.pngblob.png

条件选择if

if语句可以进行嵌套

if 判断条件;then

         条件为真的分支代码

elif  判断条件;then

         条件为真的分支代码

elif  判断条件;then

条件为真的分支代码

         else

         以上情况都不符合的处理代码

fi

blob.png

逐条件进行判断,当第一次遇到为条件时,执行其分支,结束整个if语句

        

case 变量引用 in

case1)

    分支

     ;;

case2)

    分支

     ;;

*)

   默认分支

     ;;

esac

blob.png


case支持glob风格的通配符

* 支持长度任意字符

? 任意单个字符

[] 指定范围内的任意单个字符

a|b  ab

 

循环执行

  将某段代码重复运行多次

  重复运行多少次:

     循环次数事先已知

     循环次数事先未知

  有进入和退出条件

 

for循环

  for 变量名 in 列表:do

    循环体

done

blob.png

 

列表生成方式

1)         直接给出列表

2)         整数列表

a)         {start,end}

b)         $(seq [start,[step]] end)

3)         返回列表的命令

$(command)

4)         使用glob  *.sh

5)         变量引用

$@  $*

 

 

while循环

    while  condition; do

       循环体

    done

 condition: 循环控制条件,进入循环之前,先做一次判断;每一次循环之后会再次做判断,条件为true,则           执行一次循环,直到条件测试状态为false终止循环,condition一般应该有循环控制变量,而此           变量的值会在循环体不断地被修正

进入条件: condition true

推出条件: condition false

 blob.png


until循环

until condition ; do

    循环体

done

进入条件: condition false

退出条件: condition true

 blob.png


循环控制语句

continue[N]:提前结束第N层的本轮循环,而直接进入下一轮判断,最内层为第1

while condition1;do

   cmd1

    …

   If condition2;then

       continue

   fi

   cmdn

   …

done

 

break

break[N]: 提前结束第N层循环,最内层为第1

while condition1;do

   cmd1

   …

   if condition2;then

   break

   fi

   cmdn

   …

done

习题

1、判断/var/目录下所有文件的类型

blob.png

blob.png

2、添加10个用户user1-user10,密码同用户名

blob.pngblob.png

blob.png

3、/etc/rc.d/rc3.d目录下分别有多个以K开头和以S开头的文件;分别读取每个文件,以K开头的文件输出为文件加  stop,以S开头的文件输出为文件名加start;

 “K34filename stop”

 “S66filename start”

blob.pngblob.png

4、写一个脚本,提示输入正整数n的值,计算1+2+3+…n的总和

blob.png

blob.png


5、写一个脚本,提示请输入网络地址,如192.168.0.0,判断输入的网段中主机在线状态

fping -a -g 192.168.0.0/24 2>/dev/null

blob.png

blob.png


6、打印九九乘法表

blob.pngblob.pngblob.png

7、求100以内所有正整数之和

blob.png

8、通过ping命令探测172.16.250.1-254范围内的所有主机的在线状态,统计在线主机和离线主机各多少。

blob.pngblob.png

9、利用变量RANDOM生成10个随机数字,输出这个10数字,并显示其中的最大者和最小者

blob.png

10、打印国际象棋棋盘

blob.pngblob.png


blob.pngblob.pngblob.png


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

(0)
Stupid_LStupid_L
上一篇 2016-08-18 15:20
下一篇 2016-08-18 15:20

相关推荐

  • Linux基础学习总结(三)

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次: [leexide@leeblog ~]$who | cut -d" " -f1 | uniq 2、取出最后登录到当前系统的用户的相关信息。 last -n&nbs…

    Linux干货 2016-10-03
  • wed服务基础·httpd基础配置详解

    一、 Web Service基础: service:计算机后台提供的功能或计算机可以提供的某一种功能 Web Service本质:通过网络调用其它网站的资源 根据来源的不同,分为两种服务: 本地服务:使用同一台机器提供的服务,不需要网络 网络服务:使用另一台机器提供的服务,需要网络   IANA互联网地址授权机构(Internet Assigned…

    2017-06-09
  • 非对称密钥加密解密

    两台计算机一台用公钥加密
    另一台解密

    2018-01-08
  • DNS实验

      建立DNS服务器(正向解析) linux没有缓存 windows有dns缓存 权威结果,非权威结果 无论是正向解析数据库还是反向解析数据中  写管理员邮件地址或完整域名(FQDN)都要再后面加上点。否则系统会自动不上区域名称。 实验环境先清理防火墙规则,关闭防火墙. centos7 systemctl disabl…

    Linux干货 2016-11-01
  • 浅析linux软、硬链接

    软链接 硬链接 不同点 创建时会占用新的inode号, 不会占用 可以跨分区 不可以跨分区 与源文件是两个不同的文件,不会增加文件链接数 与源文件数据相同,会增加文件链接数 依赖于链接的文件名,当删除或移动源文件后,连接可能失效 不依赖于源文件名,删除或移动源文件后,硬链接依然使用 对文件,目录都可以执行链接操作 只能对文件执行链接操作 大小为指向源文件路径…

    Linux干货 2016-12-05
  • linux 常用命令

    命令1 rm 作用: 删除指定的文件  选项 作用 -f 强制删除 -i 删除前提示询问 -r  或  -R 递归处理,删除指定目录下的所有文件包括子目录 -v 显示指令执行过程 -d 直接把删除目录的硬连接数据删成零,删除该目录 命令2 终端(tty): 终端类型 开启方式 物理终端 console 控制台console 虚拟…

    Linux干货 2017-07-13