在这个 guess.sh 脚本中,添加了一些交互式的信息,从而使得用户与系统的互动性得以增强。
而且每当循环到 let TIMES++命令时都会让 TIMES 变量内的数值加 1,用来统计循环总计 执行了多少次。这可以让用户得知总共猜测了多少次之后,才猜对价格。
如果用户猜测的次数超过十次,则系统自动退出,并告知用户具体价格是多少。
如果用户按字母Q或q,则退出系统。
#!/bin/bash
echo "欢迎进入猜数字游戏"
Price=$(expr $RANDOM % 1000)
Times=0
echo "物品实际价格为0-999之间,猜猜看是多少?"
reg_limit='^[0-9]+$'
reg_limit2='^[a-zA-Z]+$'
while true
do
if [ $Times -ge 10 ]
then
echo "您未能在10次内猜中,抱歉"
echo "实际价格为$Price"
exit 0
else
read -p "请输入您猜测的价格:(输入 字母Q或者q可中途退出程序.)" GPRICES
let Times++
if [[ $GPRICES =~ $reg_limit2 ]] # 正则匹配多个输入的字符
then
#echo "$GRADE 是纯字母"
if [ $GPRICES = "Q" ]||[ $GPRICES = "q" ]
then
echo "再见"
exit 0
else
echo "输入信息有误,请您重新输入"
fi
elif [[ $GPRICES =~ $reg_limit ]] # 匹配多个数字
then
#echo "$GRADE是纯数字"
if [ $GPRICES -eq $Price ]
then
echo "恭喜您答对了,实际价格是$Price"
echo "您总共猜测了$Times次"
exit 0
elif [ $GPRICES -gt $Price ]
then
echo "高了"
else
echo "低了"
fi
else
echo "输入信息有误,请您重新输入"
fi
fi
done
测试结果:
版权声明:本文为qinzaoxiaozhu原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。