Shell循环语句详解--while、until循环

本文介绍了Shell脚本中的while和until循环的基本用法,包括乘法表、猜数字游戏和循环嵌套的餐厅点餐模拟。通过示例展示了如何使用循环条件、嵌套循环和循环控制语句实现复杂逻辑。同时提到了防止死循环的注意事项。
摘要由CSDN通过智能技术生成

一.while循环基本格式

while循环,当循环条件为真时,就执行循环操作
基本格式:

while 条件        
do 
    命令
done

while语法结构:

 

 

 

二.while循环

2.1乘法表

 2.2猜数字

#!/bin/bash
echo "数字范围为:0-999,请猜猜是多少"
S=$[RANDOM%1000]      #RANDOM为系统变量,随机生成一个随机数
A=0                   #%1000,除1000取余,那么生成的随机数就为0-999 
while true            #true 为永真,所以次循环为死循环,会一直持续进行
do
 read -p "请输入你猜的数字:" NUM
let A++
 if [ $NUM -eq $S ];then
echo "恭喜你,猜对了!你一共猜了$A次"
 break                 #break为跳出循环,不再进行循环
 elif [ $NUM -gt $S ];then
 echo "你猜的数字高了,你已经猜错了$A次"
 else
echo "你猜的数字低了,你已经猜错了$A次"
 fi
done

 

 

2.3循环嵌套

在while循环中,我们可以使用其它语法进行嵌套
模拟餐厅点餐

#!/bin/bash
#模拟餐厅点餐
i=1
sum=0
while [ $i -le 3 ]
do
 echo "第$i家餐厅"
 read -p "是否进入该餐厅(yes/no)" choice
  while [ $choice == yes ]
  do
cat <<EOF
===========菜单===========
1.西红柿鸡蛋:18
2.烤鸭:48
3.鲈鱼:88
4.小龙虾:99
EOF
   read -p "请选择你要吃的" choice2
   case $choice2 in
   1)
     echo "你点了西红柿鸡蛋"
     let sum=$sum+18
   ;;
   2)
     echo "你点了烤鸭"
     let sum=$sum+48
   ;;
   3)
     echo "你点了鲈鱼"
     let sum=$sum+88
3)
     echo "你点了鲈鱼"
     let sum=$sum+88
   ;;
   4)
     echo "你点了小龙虾"
     let sum=$sum+99
   ;;
    esac
    read -p "是否继续选择菜品(yes/no)" choice
  done
  let i++
  echo "你在$i店内消费了$sum元"
done
echo "你本次外出一共消费$sum元"

 

 

三.until循环

until循环和while循环使用方法基本一直,不同点在于,while循环在条件为true时进行循环,而until循环与其恰恰相反,当条件为false时执行循环。
基本格式:

until 条件
do 
   命令
done

 

 

四.总结

1.while循环与until循环,结构相似,在生产中绝大多数情况使用while循环
2.因while循环语句,当条件为true时会一直进行循环操作,要注意条件格式,防止进入死循环

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值