Shell while循环和until循环语句

Shell while循环和until循环语句

罗小黑
2021-06-26 / 3 评论 / 80 阅读 / 正在检测是否收录...
广告
温馨提示:
本文最后更新于2021年06月27日,已超过153天没有更新,若内容或图片失效,请留言反馈。

while 循环语句的基本语法

while <条件表达式>
do
    指令...
done

示例:显示每分钟负载情况

#!/bin/bash
while true
do
    uptime >> uptime.txt  
    sleep 5
done

kqdv188k.png

  • 系统显示时间 22:29:31
  • up 6 days 距上次启动开始系统运行时间
  • 1 user 一个连接数
  • load average 分别表示1分钟 5分钟 15 分钟系统的平均负载

示例:打印54321

#!/bin/bash
i=5
while (( i > 0 ))
do
    echo "$i"
    (( i-- ))
done
#或者用以下
#while [ $i -gt 0 ]
#do
#    echo "$i"
#    (( i-- ))
#done

until 循环是不成立进行循环

#!/bin/bash
i=5
until (( i < 1 ))
do
    echo "$i"
    (( i-- ))
done
#until [ $i -lt 1 ]
#do
#    echo "$i"
#    (( i-- ))
#done

示例:计算100以内的和

#/bin/bash
i=1
sum=0
while (( i <=100 ))
do
    (( sum+=i ))
    (( i++ ))
done
[ "$sum" -ne 0 ] && printf "$sum\n"
#while [ $i -le 100 ]
#do
#    (( sum+=i ))
#    (( i++ ))
#done
#[ "$sum" -ne 0 ] && printf "$sum\n"

示例:检测网站状态

#!/bin/bash
read -p "请输入一个网址:" web    #判断是否输入网址
[ -z "$web" ] && echo "输入错误" && exit
#if [ $# -ne 1 ]; then
#    echo "请输入一个网址"
#    exit 1
#fi
while true
do
 if [ `curl -o /dev/null --connect-timeout 5 -s -w "%{http_code}" $web|egrep -w "200|301|302"|wc -l` -ne 1 ]  对传入的url进行状态过滤 如果不等于1则表示状态不对
then
    echo "$web is error"
else
    echo "$web is ok"
fi
sleep 3
done
0

打赏

评论 (3)

取消
  1. 头像
    若梦
    iPhone · Safari
    沙发

    测试

    回复 删除 垃圾
  2. 头像
    moi
    Windows 7 · Google Chrome
    板凳

    画图

    回复 删除 垃圾
  3. 头像
    moi
    Windows 7 · Google Chrome
    地毯

    画图

    回复 删除 垃圾