#!/bin/sh echo 'Do you take a card? [y/n]' read a #カードを引くか否かのメッセージを表示し、返答を読み込む。 while [ $a = "n" ] #返答が"n"(=no)である限り、以下のdo~doneの操作が繰りかえされる。 #つまり始めからカードを引くことを拒まみ続けるような人のためのプログラムである... do echo "Play with me!" echo "Do you take a card? [y/y]" read a done #カードを引くようより強く促し、返答を読み込む。 #次に、1~10のカードの中から1枚引くという操作のために #1~10の乱数をあてはめた変数を生成する。 number=`expr $RANDOM % 10` #"$RANDOM"は0~32767までの乱数を生成するコマンドであり、 #それを10で割った余りは、その数の下一桁のみ取り出すことになるので #これで0~9の乱数が生成できる。 number=`expr $number + 1` #そこに1を足して1~10の乱数を生成する。 echo "Your card is $number ." echo "cards : $number " >quiz3.txt #つくった乱数を引いたカードの数として表示する。 score=$number echo "Your score is $score ." #初めのカードなのでその数をそのままスコアとし、表示する。 echo " " #次の行を見やすくするためにスペースの一行をつくっておく。 score=`expr $score + $number` #スコアはそのときのスコアに引いたカードの数を加算したものと定義しておく。 while [ $score -lt 22 ] #スコアがゲームオーバーの22を超えるまでdo~doneの操作を繰り返す。 do echo "Do you take once more? [y/n]" read a #もう一度カードを引くか尋ね、返答を読み込む。 if [ $a = "y" ]  then number=`expr $RAMDOM % 10` number=`expr $number + 1` echo "Your card is $number ." echo -n "$number " echo "Now, your score is $score ." #もし引くなら、新たに乱数を生成し直し、 #その数をそのときのスコアに足し合わせたものを現スコアをして表示する。 #またその数を"quiz3.txt"に記録する。   else echo "Your score is $score and finish!" echo "total : $score" >>quiz3.txt exit #またもし引くのをやめたら、そのときのスコアを最終スコアを表示して終了する。 #そしてそれを"quiz3.txt"に記録する。  fi done echo "So, your score is over 21!" echo "Game over ..." #スコアが22を超えたときこのメッセージを表示して終了する。