天天看點

讀書筆記--101個shell腳本 之#13--猜數字

原本書上這個例子是教調試腳本的,它故意給出的腳本中有幾個錯誤,教我們認識系統提示的錯誤,并修改運作。但比較難寫出來,是以把修改好了的腳本放上來,這個腳本比較有趣味的

#!/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)整個腳本并不複雜,但邏輯清晰明了,也很有意思。

本文轉自 hb_fukua 51CTO部落格,原文連結:http://blog.51cto.com/2804976/597500