shell中的while循环和until循环

一:while循环语法

while [ condition ]               #只有条件为真的时候,while才会循环,条件为假,停止循环
    do
               commands
done
【条件可以是五种运算中的任意一种】

【例:数学比较】

read -p "Number:" num1
while [ $num1 -gt 0 ]
    do 
          echo "大于"
          sleep 3
done

【例:字符串比较】 

read -p "login:" account
while [ $account != 'root' ]
     do
         read -p "login:" account
done

 【例:文件比较】

while [ ! -d /tmp/wula ]
     do
            echo "not found  /tem/wula"
     sleep 2
done

 【例:逻辑运算,丈母娘选女婿】

read -p "money:" money
read -p "car:" car_num
read -p "house:" house
while [ $money -lt 100000 ] || [ $car_nm -lt 1 ] || [ $house -lt 1 ]
     do
         echo "不行"
         read -p "money:" money
         read -p "car:" car_num
         read -p "house:" house
done

echo "小伙子不错,就是你了"

 结果
[root@localhost shell]# bash test8.sh
money:1231231
car:0
house:1
不行
money:123123
car:1
house:1
小伙子不错,就是你了

二:while嵌套

【例:打印1-9,当数值为5时,停止循环】

i=1
while [ $i -lt 10 ]
      do 
           echo $i
           if [ $i -eq 5 ];then
                   break
           fi
           i=$((i+1))
done

 【例:打印1-9,当数值为5时,跳过当前循环】

i=0
while [ $i -lt 10 ]
      do 
           i=$((i+1))
           if [ $i -eq 5 ];then
                  continue
           fi
          
        echo $i
done

 【例:9*9乘法表】

n=1
while [ $n -lt 10 ];do
      for((m=1;m<=$n;m++));do
               echo -n -e "$m * $n =$((n*m))\t"
      done
      echo 
      n=$((n+1))
done

三:until语法

until语句和while刚好相反,until是条件为假开始执行,条件为真停止

until [ condition ]
do 
        commands代码块
done

【例:打印10-20之间的数】

num=10
until [ $num -gt 20 ];do
       echo $num
       num=$((num+1))
done

 【while和until接龙,打印1-20】

num=1
while [ $num -lt 10 ];do
        echo $num 
        num=$((num+1))
        until [ $num -lt 10 ];do
        echo $num
           if [ $num -eq 20 ];then
                  break
           fi
        num=$(($num+1))
        done
done

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值