#!/bin/bash #コンパイルされていないファイルを実行しようとするとカーネルがエラーを返し、シェル(/bin/bash)が起動。インタプリタとしてスクリプトを読み込み実行する。 echo 二桁の正の整数 m があります。 #数当てプログラムをユーザーにやってもらう導入として、数当てルールを表示する。           echo さあ、あなたは m の数字を当てられるかな。 #echoの2行までは分かりやすいように日本語である。 q1=quiz1.txt #数当てゲームの結果の出力先ファイルquiz1.txtをシェル変数q1で置き換える。 echo What\'s your number? | tee $q1 #セリフが標準出力(ユーザーに表示)されると同時にシェル変数q1、つまりquiz1.txtファイルに書き込まれる。\はコマンド認識されないためのエスケープである。  read a #ユーザーが打ち込んだ値をaとして、計算機が読み込む。 echo $a >> $q1 #読み込んだ値をシェル変数として、ファイルquiz.txtに追加で書き込む。  until test $a -eq $1 #aが引数(答え)と等しくなるまで、doからdoneまでの間のコマンドを実行し続ける。 do if test $a -gt $1 #aが答えより大きいという事象が真の場合はthen以下の、偽の場合はelse以下のコマンドを実行する。 then echo Your number is larger than the answer. | tee -a $q1 #値aが答えより大きいことを、ユーザーに伝えると同時に、quiz1.txtに追加で書き込む。-aは上書きするためのteeコマンドのオプションである。 else echo Your number is smaller than the answer. | tee -a $q1 #値aが答えより小さいことを、ユーザーに伝えると同時に、quiz1.txtに追加で書き込む。 fi echo What\'s your number? | tee -a $q1 #再びユーザーに尋ねると同時にその疑問文のセリフが、quiz1.txtに追加で書き込まれる。 read a #ユーザーが打ち込んだ値を、再び読み込む。 echo $a >> $q1 #その値aを、quiz1.txtに追加で打ち込む。 done #ここまでで、ユーザーが打ち込んだ値aが答えである数と一致する。 echo Your number matches the answer!! END. | tee -a $q1 #答えを当てたことを、ユーザーに知らせ、同時にquiz1.txtに追加で書き込み、プログラムが終了する。