博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【CentOS 7Shell编程6】,while循环#180212
阅读量:7016 次
发布时间:2019-06-28

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

hot3.png

hellopasswd


while循环

  • 语法while条件;do...;done
  • 案例(每隔半分钟检查系统负载,当系统负载大于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" fi sleep 30 done
[root@localhost shell]# w 03:32:16 up 11:45,  1 user,  load average: 0.00, 0.01, 0.05USER     TTY        LOGIN@   IDLE   JCPU   PCPU WHATroot     pts/0     03:27    0.00s  0.06s  0.00s w[root@localhost shell]# w | head -1 | awk -F 'load average: ' '{print $2}'0.00, 0.01, 0.05[root@localhost shell]# w | head -1 | awk -F 'load average: ' '{print $2}' | cut -d. -f10[root@localhost shell]# uptime 03:32:20 up 11:45,  1 user,  load average: 0.00, 0.01, 0.05[root@localhost shell]# uptime | head -1 | awk -F 'load average: ' '{print $2}'0.00, 0.01, 0.05[root@localhost shell]# uptime | head -1 | awk -F 'load average: ' '{print $2}' | cut -d. -f10

去掉空格

[root@localhost shell]# uptime | head -1 | awk -F 'load average:' '{print $2}' | cut -d. -f1 0[root@localhost shell]# uptime | head -1 | awk -F 'load average: ' '{print $2}' | cut -d. -f10[root@localhost shell]# uptime | head -1 | awk -F 'load average:' '{print $2}' | cut -d. -f1 | sed 's/ //'0
[root@localhost ~]# cd shell/[root@localhost shell]# vi 1.sh       1 #!/bin/bash      2 while :      3 do      4     load=`w | head -1 | awk -F 'load average: ' '{print $2}' | cut -d. -f1`      5     if [ $load -gt 10 ]      6     then      7         /usr/local/sbin/mail.py hellopasswd@163.com "load high" "$load"      8     fi      9     sleep 30     10 done

while :表示为真,与while 1和while true作用相同

[root@localhost shell]# sh -x 1.sh + :++ w++ head -1++ awk -F 'load average: ' '{print $2}'++ cut -d. -f1+ load=0+ '[' 0 -gt 10 ']'+ sleep 30

每30s运行一次

  • while循环案例 #!/bin/bash while : do read -p "please input a number:"n if [ -z $n ] then echo "You need input something" continue fi n1=echo $n | sed 's/[0-9]//g' if [ ! -z $n1 ] then echo "You must input a number" continue fi break done echo $n
1 #!/bin/bash      2 while :      3 do      4     read -p "Please input a number:" n      5     if [ -z "$n" ]      6     then      7         echo "You need input something"      8         continue      9     fi     10     n1=`echo $n | sed 's/[0-9]//g'`     11     if [ ! -z "$n1" ]     12     then     13         echo "You must input a number"     14         continue     15     fi     16     break     17 done     18 echo $n
[root@localhost shell]# sh -x 1.sh + :+ read -p 'Please input a number:' nPlease input a number:+ '[' -z '' ']'+ echo 'You need input something'You need input something+ continue+ :+ read -p 'Please input a number:' nPlease input a number:a+ '[' -z a ']'++ echo a++ sed 's/[0-9]//g'+ n1=a+ '[' '!' -z a ']'+ echo 'You must input a number'You must input a number+ continue+ :+ read -p 'Please input a number:' nPlease input a number:1+ '[' -z 1 ']'++ echo 1++ sed 's/[0-9]//g'+ n1=+ '[' '!' -z '' ']'+ break+ echo 11[root@localhost shell]# sh 1.sh Please input a number:You need input somethingPlease input a number:aYou must input a numberPlease input a number:11

修改于 180212

转载于:https://my.oschina.net/hellopasswd/blog/1621444

你可能感兴趣的文章
忘记sa密码,又删除了windows身份验证账号的解决方法
查看>>
如何判断 Linux 是否运行在虚拟机上
查看>>
通过注册表开通关闭局域网共享
查看>>
Asp.net 导入导出Excel
查看>>
Oracle 10.2.0.4(5)EM不能启动的解决方案
查看>>
AngularJS—— 独立作用域
查看>>
Web开发(初级)- CSS基础
查看>>
Cacti weathermap添加实时读数节点
查看>>
Linux就该这么学
查看>>
Qmail 邮件系统维护管理技术文档
查看>>
Google Guava - Cache
查看>>
你以为的SPSS只是简单的数据分析软件吗?
查看>>
CSS Grid Simple Example
查看>>
《Windows服务器配置与管理》本地用户、组的管理
查看>>
mysql数据库移植sqlserver数据库
查看>>
使用update-alternatives 命令修改Java版本-自动切换Java版本
查看>>
SQL Server 2016 Failover Cluster+ ALwaysOn(二)
查看>>
spring源码--依赖注入
查看>>
rhel7配置多用户tiger vnc server
查看>>
iOS播放系统声音
查看>>