if文を作ってみよう
if文
if文のもっとも基本的な書き方は、以下のようになります。
このif文は、条件1が真であれば処理1を行い、偽であれば何もしません。
真は0、偽は1です。
if 条件1
then
処理1
fi
if文を使ったシェルスクリプトは、以下のようになります。
ifのあとのtrueは、戻り値に0を返すコマンドです。
このプログラムは、必ずif文の中に入り「これは真です」を表示します。
1 2 3 4 5 6 |
#!/bin/bash if true then echo "これは真です" fi |
メモ
真を表すtrueに対して、偽を表すのはfalseです。
falseコマンドを実行すると戻り値に1を返します。
if~else文
条件が偽の場合にも処理を実行したい場合は、以下のようになります。
このif文は、条件1が真であれば処理1を行い、偽であれば処理2を行います。
if 条件1
then
処理1
else
処理2
fi
if~else文を使ったシェルスクリプトは、以下のようになります。
引数で渡された値が1の場合は「これは1です」を表示して、1以外の場合は「これは1以外です」を表示します。
1 2 3 4 5 6 7 8 |
#!/bin/bash if (( $1 == 1 )) then echo "これは1です" else echo "これは1以外です" fi |
if~elif~else文
条件を複数使いたい場合は、以下のようになります。
このif文は、条件1が真であれば処理1を行い、条件2が真であれば処理2を行います。
条件1、条件2のどちらにも当てはまらなければ、処理3を行います。
また、条件1も条件2も真の場合は、処理1のみ実行されて、処理2は実行されません。
if 条件1
then
処理1
elif 条件2
then
処理2
else
処理3
fi
if~elif~else文を使ったシェルスクリプトは、以下のようになります。
引数で渡された値が1の場合は「これは1です」を表示して、引数で渡された値が2の場合は「これは2です」を表示します。
引数で渡された値が1でも2でもない場合は「これは1、2以外です」を表示します。
1 2 3 4 5 6 7 8 9 10 11 |
#!/bin/bash if (( $1 == 1 )) then echo "これは1です" elif (( $1 == 2 )) then echo "これは2です" else echo "これは1、2以外です" fi |