一台装有RHEL 7.0操作系统的电脑
循环结构如图所示:接下来就来利用多重分支的if条件测试语句与while条件循环语句来结合写一个用来判断数值的脚本吧,脚本中会使用$RANDOM变量来调取出一个随机的数值(范围:0--32767),然后通过expr命令计算取整出1000以内的一个随机数值,用这个数值来跟用户通过read命令输入的数值做比较判断。判断语句结构分为三项,分别是判断是否相等、是否大于随机值以及是否小于随机值,但这不是重点~关键是在于while条件循环语句的判断值为true,因此会无限的运行下去,直到猜中后运行exit 0命令才终止脚本。
[root@linuxprobe ~]# vim Guess.sh #!/bin/bash PRICE=$(expr $RANDOM % 1000) TIMES=0 echo '商品实际价格为0-999之间,猜猜看是多少?' while truedo 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
通过给脚本加上解释说明后整个内容开始变得丰满起来,互动感也变得很强,每当循环到let TIMES++这个命令时都会让TIMES变量内数值加上1,这样用来统计总共循环次数的功能更是画龙点睛,让操作者可以知道猜对价格最终使用了几次机会。[root@linuxprobe ~]# bash Guess.sh 商品实际价格为0-999之间,猜猜看是多少? 请输入您猜测的价格数目:500 太低了! 请输入您猜测的价格数目:800 太高了! 请输入您猜测的价格数目:650 太低了! 请输入您猜测的价格数目:720 太高了! 请输入您猜测的价格数目:690 太低了! 请输入您猜测的价格数目:700 太高了! 请输入您猜测的价格数目:695 太高了! 请输入您猜测的价格数目:692 太高了! 请输入您猜测的价格数目:691 恭喜您答对了,实际价格是 691 您总共猜测了 9 次