Shell编程之while和until循环语句

while语句的结构

重复测试某个条件,只要天剑成立则反复执行

在这里插入图片描述
在这里插入图片描述

while循环会有死循环

例:输出1~50 不能被整除的数字

在这里插入图片描述
在这里插入图片描述

let:可以当做简单的计算器

let [计算表达式]
let 命令:是 BASH 中用于计算的工具,提供常用运算符;并且提供方幂“ ** ”运算符。在变量房屋的计算中无需加上“$”符号来表示变量,若表达式的值为非0,那返回的状态值为0;否则,返回的状态值是1.

在这里插入图片描述
-v=取反

grep -v grep

精确的反向查找

例:猜数字

在这里插入图片描述

break可以换exit
break意思为跳出
在这里插入图片描述
查看其中的脚本
在这里插入图片描述

例:猜一猜商品价格

#!/bin/bash
PC=`expr $RANDOM % 1000`
a=0
echo "商品实际价格范围0~999,请猜猜看是多少?"

while true
do
read -p "请输入估测的价格:" num
let a++
if [ $num -eq $PC ];then
    echo "恭喜!你猜对了!实际价格是 $PC "
    echo "总共猜了 $a 次"
    exit 0
elif [ $num -gt $PC ];then
    echo "对不起,价格高了!"
else
echo "不对不对,猜低了"
fi
done

在这里插入图片描述
在这里插入图片描述

Apache开启服务

#!/bin/bash
while ps aux |grep httpd |grep -v grep &> /dev/null   ——ps aux 动态查找所有进程;grep httpd:过滤显示出带有httpd的字段,最后-v:取反,反向查找,过滤掉带有grep的字段。
do
echo "Apache 服务正在运行中"
sleep 2   ——睡眠两秒
done
echo "Apache 服务不在运行,请查看服务是否出现故障"

监控系统资源中的内存和硬盘空间

#!/bin/bash
#功能:监控系统资源中的内存和硬盘空间
disk_size=$( df / |awk '/\//{print $4 }') #硬盘的可用空间
Mem_size=$(free | awk '/Mem/{print $4}')  #分区的可用空间
while
do
  if [ $disk_size -le 2560000 -a $Mem_size -le 102400 ];then
   mail -s Warning root <<EOF
   内存和硬盘空间不足请尽快处理!
EOF

#EOF是免交互模式,直接把东西传给邮箱进行警告
#注意EOF必须要顶格写才能成功
  fi
done

在这里插入图片描述
在这里插入图片描述

until 循环语句结构

重复测试某个条件,只要条件不成立则反复执行

在这里插入图片描述

只要while后面的命令退出状态为0,while循环就一直执行下去,until命令与while命令相似,唯一的区别在于,只要until后面的命令退出不为0,until循环就一直执行下去,也就是说,使用until语句重复执行一段代码直到条件为真为止,与while类似

在这里插入图片描述

计算0~50的和

通过循环累加的方式计算1-50的和

#!/bin/bash
#功能1:0-50的和是多少?
#i=0;s=0
#until [ $i -eq 51 ]
#do
 #   let s+=i
  #  let i++
#done
#echo $s

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值