怎么判断输入(read)来的字符串到底是数字还是非数字呢?
下载此脚本文件
#!/bin/bash
#显示游戏历史的函数
function List
{
echo "|>>"
cat ~/.guessnumbergame
echo "|>>"
}
#
#进行游戏
function DoGame
{
while true
do
let "TheTimeGuess += 1"
echo "请输入您猜到的整数(输入-1承认失败)"
BeginTime=$SECONDS
read GuessNumber
if [ ${GuessNumber} -eq "-1" ];then
echo "看来你选择了放弃:-)"
echo "其实那个数字就是${TheNumberNeedGuess}"
let "UseTime = $SECONDS - ${BeginTime}"
echo "共猜测了${TheTimeGuess}次,用时${UseTime}秒"
echo "${playername}大侠<<放弃>>了游戏,共猜测了${TheTimeGuess}次,用时${UseTime}秒." >> ~/.guessnumbergame
break
fi
if [ ${GuessNumber} -lt ${TheNumberNeedGuess} ];then
echo "低了,加油啊~"
fi
if [ ${GuessNumber} -gt ${TheNumberNeedGuess} ];then
echo "高了,努力啊~"
fi
if [ ${GuessNumber} -eq ${TheNumberNeedGuess} ];then
echo "恭喜你猜对了:-)"
let "UseTime = $SECONDS - ${BeginTime}"
echo "共猜测了${TheTimeGuess}次,用时${UseTime}秒"
echo "${playername}大侠<<完成>>了游戏,共猜测了${TheTimeGuess}次,用时${UseTime}秒." >> ~/.guessnumbergame
break
fi
done
}
#函数结束
clear
echo "|-----------------------------------------------|"
echo "|---------------- 猜数字游戏 v0.1 --------------|"
echo "|-----------------------------------------------|"
echo "|-----------------------------------------------|"
echo "|--------------------数字范围(0 - 32767)--------|"
echo "|-----------Mailto:Harite.K@gmail.com-----------|"
echo "|-----------MyBolg:http://hi.baidu.com/harite---|"
TheNumberNeedGuess=$RANDOM
TheTimeGuess=0
#echo ${TheNumberNeedGuess}
while true
do
echo "<1. 我要进行游戏>"
echo "<2. 查看排行榜>"
echo "<3. 退出游戏>"
echo "请选择(1/2/3)"
read choose
if [ ${choose} -eq "1" ];then
echo "输入你的大名:"
read playername
DoGame
elif [ ${choose} -eq "2" ];then
List
elif [ ${choose} -eq "3" ];then
exit 0
else
continue
fi
done
(责任编辑:IT) |