while条件循环语句
这是一种让脚本根据某些条件来重复执行命令的条件循环语句,而这种循环结构往往在执行前并不确定最终执行的次数,完全不同于for循环语句中有目的、有范围的使用场景。而while循环语句判断是否继续执行命令的依据一般是检查若条件为真就继续执行,而条件为假就结束循环。详情请关注《linux就该这么学》。
操作方法
- 01
循环结构如图所示: 接下来就来利用多重分支的if条件测试语句与while条件循环语句来结合写一个用来判断数值的脚本吧,脚本中会使用$RANDOM变量来调取出一个随机的数值(范围:0--32767),然后通过expr命令计算取整出1000以内的一个随机数值,用这个数值来跟用户通过read命令输入的数值做比较判断。判断语句结构分为三项,分别是判断是否相等、是否大于随机值以及是否小于随机值,但这不是重点~关键是在于while条件循环语句的判断值为true,因此会无限的运行下去,直到猜中后运行exit 0命令才终止脚本。
- 02
[root@linuxprobe ~]# vim Guess.sh #!/bin/bash PRICE=$(expr $RANDOM % 1000) TIMES=0 echo "商品实际价格为0-999之间,猜猜看是多少?" while true do read -p "请输入您猜测的价格数目:" INT let TIMES++ if [ $INT -eq $PRICE ] ; then echo "恭喜您答对了,实际价格是 $PRICE" echo "您总共猜测了 $TIMES 次" exit 0 elif [ $INT -gt $PRICE ] ; then echo "太高了!" else echo "太低了!" fi done
- 03
通过给脚本加上解释说明后整个内容开始变得丰满起来,互动感也变得很强,每当循环到let TIMES++这个命令时都会让TIMES变量内数值加上1,这样用来统计总共循环次数的功能更是画龙点睛,让操作者可以知道猜对价格最终使用了几次机会。 [root@linuxprobe ~]# bash Guess.sh 商品实际价格为0-999之间,猜猜看是多少? 请输入您猜测的价格数目:500 太低了! 请输入您猜测的价格数目:800 太高了! 请输入您猜测的价格数目:650 太低了! 请输入您猜测的价格数目:720 太高了! 请输入您猜测的价格数目:690 太低了! 请输入您猜测的价格数目:700 太高了! 请输入您猜测的价格数目:695 太高了! 请输入您猜测的价格数目:692 太高了! 请输入您猜测的价格数目:691 恭喜您答对了,实际价格是 691 您总共猜测了 9 次