读书笔记--101个shell脚本 之#13--猜数字
2011-06-27 21:56
801 查看
原本书上这个例子是教调试脚本的,它故意给出的脚本中有几个错误,教我们认识系统提示的错误,并修改运行。但比较难写出来,所以把修改好了的脚本放上来,这个脚本比较有趣味的
# hilow -- A simple number-guessing game
biggest=100 # maximum number possible
guess=0 # guessed by player
guesses=0 # number of guesses made
number=$(($$ % $biggest)) # random number, between 1 and $biggest
while [ $guess -ne $number ]
do
echo -n "Guess? " ; read guess
if [ "$guess" -lt $number ] ; then
echo "... bigger!"
elif [ "$guess" -gt $number ] ; then
echo "... smaller!i"
fi
guesses=$(($guesses + 1))
done
echo "Right!! Guessed $number in $guesses guesses."
exit 0
脚本分析
#1) number=$(($$ % $biggest)) $$代表执行此shell的pid,因为每次执行shell的pid并不相同, 所以number为1-100的随机数。
#2)$guess -ne $number ,if [ "$guess" -lt $number ],elif [ "$guess" -gt $number ] ;为判断输入的数字与$number的比较。
#3)整个脚本并不复杂,但逻辑清晰明了,也很有意思。
The Code
#!/bin/sh# hilow -- A simple number-guessing game
biggest=100 # maximum number possible
guess=0 # guessed by player
guesses=0 # number of guesses made
number=$(($$ % $biggest)) # random number, between 1 and $biggest
while [ $guess -ne $number ]
do
echo -n "Guess? " ; read guess
if [ "$guess" -lt $number ] ; then
echo "... bigger!"
elif [ "$guess" -gt $number ] ; then
echo "... smaller!i"
fi
guesses=$(($guesses + 1))
done
echo "Right!! Guessed $number in $guesses guesses."
exit 0
脚本分析
#1) number=$(($$ % $biggest)) $$代表执行此shell的pid,因为每次执行shell的pid并不相同, 所以number为1-100的随机数。
#2)$guess -ne $number ,if [ "$guess" -lt $number ],elif [ "$guess" -gt $number ] ;为判断输入的数字与$number的比较。
#3)整个脚本并不复杂,但逻辑清晰明了,也很有意思。
相关文章推荐
- 读书笔记--101个shell脚本--05
- 读书笔记--101个shell脚本 之#9
- 读书笔记--101个shell脚本 之#12--函数
- 101个shell脚本 猜数字游戏代码
- 读书笔记--101个shell脚本 之#10
- 读书笔记--101个shell脚本 之#11--炫
- shell脚本-输入一个数字对应一个命令
- shell脚本----if(数字条件,字符串条件,字符串为空)
- shell脚本学习(2)比较两个数字大小
- shell脚本----if(数字条件,字符串条件,字符串为空)
- 【Shell脚本学习13】Shell数组:shell数组的定义、数组长度
- shell脚本之判断数字大小
- 【shell脚本】对键盘输入数字运算
- 编写一个求数字和的shell脚本
- LinuxC/C++编程基础(13) shell脚本简单实例
- 101个shell脚本之002
- Linux系统shell脚本对字符串、数字、文件的判断
- 读书笔记之101个脚本之No.7
- 读书笔记之101个超酷脚本之001
- 读书笔记之101个脚本之No.8