码迷,mamicode.com
首页 > 其他好文 > 详细

for循环、while循环、break跳出循环、continue结束本次循环、exit退出整个脚本?

时间:2018-06-04 11:29:40      阅读:153      评论:0      收藏:0      [点我收藏+]

标签:shell

         for 循环

范围的符号用 `` 

`seq 范围` 

技术分享图片


1.测试脚本:(1加到100)内容:

技术分享图片

结果:

技术分享图片


2.遍历/etc/下的目录:

内容:

技术分享图片

结果:

技术分享图片


for i in `seq 1 3`  == for i  1 2 3

for循环会以空格或回车作为分隔符

例如:/tmp/下有三个文件 1.txt、2.txt和3 4.txt(3 4.txt是一个文件,3和4之间有空格)

当在命令行中执行:for i in `ls /tmp/` do echo $i  ;done 

结果则会出现四个文件这样的显示1.txt、 2.txt、3和4.txt(这是3 4.txt是一个文件却因为空格拆分成两个)




                  while循环

技术分享图片

1.格式:

while 条件 ;do ...;done

如 (1)while :  (死循环)  do ;done

     (2)while true == while 1 ;do...;done

2.案例当系统负载大于10时,发送一封邮件(每分钟发送一次)


#!/bin/bash

while :

do

    load=`w|head -1|awk -F 'load average: ' '{print $2}'|cut -d. -f1`

    if [ $load -gt 10 ]          //负载值比对

    then

        top|mail -s "load is high: $load" asldkfls@11.com

        (或者:/usr/lib/zabbix/alertscripts/mail.py 15521787110@163.com "load is high: $load") 

    fi

    sleep 30     //添加时间间断,没30秒查一次

done


( load=`w|head -1|awk -F 'load average: ' '{print $2}'|cut -d. -f1`

技术分享图片

过滤所要所要字符。|sed 's/ //' 把过滤字符前的空格去除

技术分享图片


3.案例:判断输入的内容是否为数字

技术分享图片

#!/bin/bash

while :

do

    read -p "Please input a number: " n

    if [ -z "$n" ]

    then

        echo "you need input sth."

        continue

    fi

    n1=`echo $n|sed 's/[0-9]//g'`

    if [ -n "$n1" ]

    then

        echo "you just only input numbers."

        continue

    fi

    break

done

echo $n

首先要判断输入的内容是否为空,如果为空则结束本次循环,继续提醒要输入内容

然后判断输入内容,是否为数字还是英文字符串,直到输入的内容是数字才会结束(跳出)整个流程


            

                break跳出循环

技术分享图片

 当在脚本中的for或者while的循环中都是可以的。使用break,当条件

满足时就会直接跳出本层的循环(就是跳出使用了break这层的循环)

技术分享图片

执行结果

技术分享图片

在使用if作判断时,要在条件范围在[ ]中的左右都要空一格,否则会有

语法错误。


                    continue结束本次循环

!!忽略continue之下的代码,直接进行下一次循环

技术分享图片

continue 是仅仅的结束满足条件的那一次过程,之后的命令也是会执行的

执行结果:

技术分享图片

技术分享图片


                    exit退出整个脚本

当整个流程运行命令,遇到exit时,直接退出脚本。

技术分享图片



执行结果:

技术分享图片




for循环、while循环、break跳出循环、continue结束本次循环、exit退出整个脚本?

标签:shell

原文地址:http://blog.51cto.com/13589255/2124476

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!