トップページ > コンテンツ > コンピュータ関連その他 > UNIXコマンド > シェルスクリプト > シェルスクリプト文法 > シェルスクリプトif文

以下のような方法で表現可能。

bash等の文法制約の関係上、下記は留意すること。
  • []と条件式の間の半角スペース等には注意。
  • 他にもif~else~fiの中に何も処理を入れないと、
 怒られるので注意。(:と書くことで回避できる)
  • [:=:unaryといったエラーを回避するため、変数を比較する場合は[ "$変数" = "" ]のように変数を""で囲った方が良い。

1.testを使う。

if test 条件式
then
fi

2.[]を使う。 ※[]と条件式の間の半角スペースを忘れないこと

if [ 条件式 ]
then
fi

3.条件式の後、改行せずに続ける

if [ 条件式 ];then
fi

4.else ifやelseも書く

if [ 条件式 ];then
elif 条件式; then
else
fi

5.&&, ||, Pattern matching, 正規表現も使う

[[ 条件式 ]]

条件式の例は以下の通り。
条件A -a 条件B AND条件。[]&&[]とすることも可能。違いは-aが1つのtestコマンドで条件判定するのに対し、[]&&[]は終了ステータスコードを判断してから次の条件判定をする点。
条件A -o 条件B OR条件。[]||[]とすることも可能。違いは-aが1つのtestコマンドで条件判定するのに対し、[]||[]は終了ステータスコードを判断してから次の条件判定をする点。
-eq 数値の=条件(equal)
-ne 数値の≒条件(not equal)
-lt 数値の<条件(less than)
-le 数値の<=条件(less than or equal)
-gt 数値の>条件(greater than)
-ge 数値の>=条件(greater than or equal)
-n 変数が空じゃない時
-z 変数が空の時
= 文字列の=条件
!= 文字列の!=条件
-e ファイルが存在する時
-d ディレクトリの時
-f ファイルの時
頭に! 条件式の否定

他にも色々なオプションがあるので、
詳しく見たい場合は、man [等で見てみよう。
最終更新:2019年11月17日 13:01