【課 題】
 ファイル名を入力するとそのファイル内容を表示するスクリプトを作成しなさい。「q」と入力するまでは,この処理を繰り返しを行うこと。

【解 説】
 シェル・スクリプトでは,メニューを利用するなど特定の処理を繰り返すことがある。このような処理には繰り返し制御文を利用する。

 今回のスクリプトは,特定の条件が成立しない限り,処理を繰り返す。処理の流れを図1に示す。

図1●フローチャート
図1●フローチャート

 繰り返し処理には,while文を利用できる。while文はその後に記載した終了コードが0の間は,処理を繰り返す。今回は:コマンドを利用し,終了コードがいつでも0を返すようにして,繰り返し続けるようにする。whileを利用した場合は,doからdoneまでの処理が繰り返される。

 処理内容を考えよう。ユーザーからの入力を受け付けるにはreadコマンドを利用すればよい。また,入力を促すメッセージの表示には,echoコマンドを利用する。改行せずにメッセージの直後で入力を受け付けたいときには,echoコマンドに「-n」オプションを付ける。

 「q」の入力で終了するためには,入力内容を判別する条件式判別を利用する。readからの入力を変数FNに代入し,その内容が「q」だと判別するには,

[ $FN = "q" ]

とすればよい。件判別にはifを利用するが,&&に置き換えると1行で条件判別を行える。よって,

[ $FN = "q" ] && exit 0

とすればよい。exitコマンドはシェル・スクリプトを終了させる。

 処理の最後として,ファイルの内容を表示するにはcatコマンドを利用すればよい。

【解答例と練習問題は次ページ】