文章目录
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