【課 題】
 「ファイルを作成してもよろしいですか?」と質問し,「yes」または「y」と入力した場合に特定のファイル(~/.script_test)を作成するシェル・スクリプトを作成しなさい。

【解 説】
 今回は,処理内容などを確認するときによく使うスクリプトを紹介する。例えば,特定のファイルを削除する前に確認するといった場合に使う。今回の例では,「ユーザーに確認し,yesまたはyと入力されたらファイルを作成する」。

 利用するコマンドを考えよう。キーボードからの入力を受け付け,入力内容を変数に保存するのがreadコマンドだ。readの後に結果を保存しておく変数名を指定すればよい。このとき,変数名の先頭には「$」を付けてはいけない。また,確認メッセージと,それに答えて入力する個所は改行しない方が分かりやすいのでechoコマンドに「-n」オプションを付けておく。よって,利用するコマンドは,次のようになる。

echo -n "メッセージ : "
read answer

 さらに,ファイルを作成する場合は,touchコマンドに作成するファイルを指定すればよい。

touch script_test

 次にプログラムの流れを考える。今回は入力内容を確認して,ファイルを作成するか否かで分岐する(図1)。

図1●フローチャート
図1●フローチャート
キーボードからの入力に応じて,実行する内容を分けるようにする。

 条件分岐はif文を利用する。今回の条件は変数の内容が「yes」のときに実行されるようにするので,判別式には「変数名 -eq "yes"」を利用する。また,「y」でもよいので,OR条件の「-o」を利用して2つの条件を併記する。判別式は次の通りだ。

[ $answer -eq "yes" -o $answer -eq "y" ]

 実際にスクリプトを記述する場合には,対象となるファイルを変数(ここではTARGET_FILE)に保存するとよい。

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