シェルスクリプト リファレンス

シェルスクリプト@初心者入門

シェルスクリプトの初心者向け解説サイトです。
トップへ

if文

プログラムの処理は通常、ソースコードの上から下へ向かって処理が実行されます。

しかし、場合によっては条件によって処理を分岐させたいときがあります。

処理を分岐させるにはif文を使用します。

まずは下記のシェルスクリプトを作成してください。

echo 1+1=
read answer

if [ $answer = "2" ]
        then echo seikai
fi

入力が終わったら実行権を与えてシェルスクリプトを実行してみましょう。
シェルスクリプトのファイル名は「prog002.sh」であったとします。

$ chmod u+x prog002.sh
$ ./prog002.sh
1+1=

実行すると上記のように「1+1=」とプロンプト上に表示されると思います。
ここまでの処理はechoコマンドで「1+1=」という文字列を表示させているだけです。

そしてこの段階で、処理が止まっている状態になります。
処理を止めている原因はreadコマンドにあります。

readコマンドは標準入力から1行読み込んで変数に格納するためのコマンドです。
標準入力とはこの場合だとキーボートからの入力になります。

では、ここで「2」と入力してみましょう。

$ ./prog002.sh
1+1=
2

「2」と入力したらEnterキーを押してください。
するとプロンプト表示が下記のようになります。

$ ./prog002.sh
1+1=
2
seikai

処理が止まっていたのはreadコマンドがキーボードからの入力を待ち受けていたためです。
「2」と入力し、Enterキーを押したことでreadコマンドの実行が完了し処理が進み出したというわけです。

では、もう一度今のシェルスクリプトを実行し、readコマンドのところで「3」と入力したらどうなるでしょう。

$ ./prog002.sh
1+1=
3

今度はEnterキーを押しても何も表示されません。

これが条件による処理の分岐です。