shell脚本编程学习第五天
E、猜数字游戏。首先让系统随机生成一个数字,给这个数字定一个范围(1-60),
让用户输入猜的数字,对输入进行判断,如果不符合要求,就给予高或低的提示,猜对后则给出猜对用的次数。
#!/bin/bash
game(){
read val
if [[ ! $val =~ ^[0-9]+$ ]]; // 用[[ ]] 装判断条件的时候,千万有空格啊,又一次犯错了。
then
echo "wrong input, please input number"
exit
fi
if [[ $val > $num ]];
then
count=$[$count+1]
echo "bigger, continue"
elif [[ $val < $num ]];
then
count=$[$count+1]
echo "smaller, continue"
else
echo "congratulation, you guess $count times"
exit
fi
}
main(){
echo "guess number"
num=$[RANDOM%61]
echo "num: $num"
while true
do
game
done
}
main
遇到的问题:
[[]] 千万加空间;
RANDOM:系统自带产生随机数,$[RANDOM%61] :产生1-61的随机数,使用 [] 或则 (( ))。
if [[ !
v
a
l
=
[
0
−
9
]
+
val =~ ^[0-9]+
val= [0−9]+ ]] : 判断输入是不是数字,可以记住,挺好的。
! 表示非,后面有空格;=两边没有空格;
= ~ 用于正则表达式匹配; ^ 开头 $ 结尾 + 更多的匹配; [0-9] 区间都是数字。
if [[ ]];then
执行语句
elif [[ ]];then
执行语句
else
执行语句
fi
函数:
[function] funname() { 函数体 },其中function关键字可有可无。