博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
day08:while、break、continue、exit
阅读量:6683 次
发布时间:2019-06-25

本文共 2424 字,大约阅读时间需要 8 分钟。

hot3.png

while循环语法:while  条件;do .......;done

案例1:写一个监控负载的脚本:

[root@localhost_02 shell]# cat while.sh #!/bin/bashwhile :#冒号表示循环,此处可以用1或者true都可以;do      load=`uptime|awk -F 'load average: ' '{print $2}'|cut -d . -f1`     if [ $load -ge 10 ]     then               /usr/local/sbin/mail.py xxx@163.com "load high" "$load"     fi     sleep 30 #休眠30秒后,继续检测系统的负载;done[root@localhost_02 shell]# sh -x while.sh + :++ awk -F 'load average: ' '{print $2}'++ cut -d . -f1++ uptime+ load=0+ '[' 0 -ge 10 ']'+ sleep 30若想这种脚本不意外的终止,可以打开screen,在screen跑脚本;

注释

uptime表示查看awk系统的负载,(可以用w,不过需要结合head -1使用):

awk -F 'load average: ' '{print $2}  表示以load  average为分隔符,并打印第二端:

cut -d .  -f1  表示用cut命令以 . 点作为分隔符,取第一个字符:

while循环案例2:输入一个数字,如果不是数字,则一直输入,输入是数字后则正常显示:

[root@localhost_02 shell]# cat while1.sh #!/bin/bashwhile :do       read -p "Please input 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      breakdone echo $n[root@localhost_02 shell]# sh while1.sh Please input number: you need input sthPlease input number: you need input sthPlease input number: sdfsyou just only input numbersPlease input number: 22

注释:contiune   继续循环:     

break:用于循环语句,直接结束所有循环:当数字等于3时,则结束所有循环:

注释:如下图例表示结束了if和for循环,然后继续打印echo内容:

[root@localhost_02 shell]# cat break.sh #!/bin/bashfor i in `seq 1 5`do    echo $i    if [ $i -eq 3 ]#比较数字,用-eq ;若是比较的是字符串,那需要用 ==    then       break    fi    echo $idoneecho aaaaa检测:[root@localhost_02 shell]# sh -x break.sh ++ seq 1 5+ for i in '`seq 1 5`'+ echo 11+ '[' 1 -eq 3 ']'+ echo 11+ for i in '`seq 1 5`'+ echo 22+ '[' 2 -eq 3 ']'+ echo 22+ for i in '`seq 1 5`'+ echo 33+ '[' 3 -eq 3 ']'+ break+ echo aaaaaaaaaa[root@localhost_02 shell]# sh break.sh 11223aaaaa[root@localhost_02 shell]#

continue:结束本次循环,忽略continue下面的代码,直接进行下一次循环:

注释:如下图例表示忽略了本次continue下的代码(条件是等于3),其余代码正常运行:

[root@localhost_02 shell]# cat con.sh #!/bin/bashfor i in `seq 1 5`do    echo $i    if [ $i -eq 3 ]    then	continue    fi    echo $idoneecho bbbbb[root@localhost_02 shell]# sh con.sh 112234455bbbbb

exit:退出整个脚本,用来确定脚本运行到什么位置时结束:

注释:如下图例表示直接退出整个脚本了:

[root@localhost_02 shell]# cat exit.sh #!/bin/bashfor i in `seq 1 5`do    echo $i    if [ $i -eq 3 ]    then	exit    fi     echo $idoneecho $ccccc[root@localhost_02 shell]# sh exit.sh 11223

转载于:https://my.oschina.net/yuanhaohao/blog/2994881

你可能感兴趣的文章
SpringMVC+Hibernate +MySql+ EasyUI实现POI导出Excel(二)
查看>>
刷leetcode第705题- 设计哈希集合
查看>>
dubbo协议参考
查看>>
SpringAOP拦截Controller,Service实现日志管理(自定义注解的方式)
查看>>
读《白帽子讲Web安全》之安全意识篇(一)
查看>>
GLSL三种修饰符区别与用途(uniform,attribute和varying)
查看>>
python django django-debug-toolbar 加载缓慢,不能使用。
查看>>
操作系之进程调度及算法详解
查看>>
PHPexcel实列
查看>>
Butterknife 的简单使用 和 配合 Butterknife的插件 Zelezny
查看>>
Magento利用input type=”file”上传图片
查看>>
Android音频开发(4):如何存储和解析wav文件
查看>>
Handler延迟事件使用
查看>>
【DG】Oracle 19c使用dbca来搭建物理DG
查看>>
StringBuilder 、StringBuffer 、 String
查看>>
android studio下NDK开发
查看>>
C#MysqlHelper
查看>>
SpringMVC Hello World 实例
查看>>
MySQL BETWEEN 用法
查看>>
vim开启自动缩进
查看>>