Linuxのシェルスクリプトにおける、if文のオプションをまとめてみました。
オプションを忘れた際に、振り返っていただければと思います。
スポンサーリンク
文字列比較オプション
オプション | 意味 |
---|---|
文字列A = 文字列B | 文字列Aと文字列Bが等しければ真 |
文字列A != 文字列B | 文字列Aと文字列Bが等しくなければ真 |
文字列A - n 文字列A | 文字列Aの長さが0より大きければ真 |
-z 文字列A | 文字列Aの長さが0であれば真 |
文字列A = 文字列B
# 文字列Aが文字列Bと等しい場合
if [ ${A} = ${B} ]; then
# 処理
fi
文字列A != 文字列B
# 文字列Aが文字列Bと異なる場合
if [ ${A} != ${B} ]; then
# 処理
fi
文字列A または - n 文字列A
# 文字列Aの長さが0より大きい場合
if [ ${A} ]; then
# 処理
fi
# 文字列Aの長さが0より大きい場合
if [ - n ${A} ]; then
# 処理
fi
-z 文字列A
# 文字列Aの長さが0の場合
if [ - z ${A} ]; then
# 処理
fi
数値比較オプション
オプション | 意味 | 覚え方 |
---|---|---|
数値A -eq 数値B | 数値Aと数値Bが等しければ真 | equal ⇒ -eq |
数値A -ne 数値B | 数値Aと数値Bが異なれば真 | not equal ⇒ -ne |
数値A -lt 数値B | 数値A < 数値Bであれば真 | less than ⇒ -lt |
数値A -le 数値B | 数値A ≦ 数値Bであれば真 | less than or equal ⇒ -le |
数値A -gt 数値B | 数値A > 数値Bであれば真 | greater than ⇒ -gt |
数値A -ge 数値B | 数値A ≧ 数値Bであれば真 | greater than or equal ⇒ -ge |
数値A -eq 数値B
# 数値Aと数値Bが等しい場合
if [ ${A} -eq ${B} ]; then
# 処理
fi
数値A -ne 数値B
# 数値Aと数値Bが異なる場合
if [ ${A} -ne ${B} ]; then
# 処理
fi
数値A -lt 数値B
# 数値A < 数値Bである場合
if [ ${A} -lt ${B} ]; then
# 処理
fi
数値A -le 数値B
# 数値A ≦ 数値Bである場合
if [ ${A} -le ${B} ]; then
# 処理
fi
数値A -gt 数値B
# 数値A > 数値Bである場合
if [ ${A} -gt ${B} ]; then
# 処理
fi
数値A -ge 数値B
# 数値A ≧ 数値Bである場合
if [ ${A} -ge ${B} ]; then
# 処理
fi
ファイル・ディレクトリ確認オプション
オプション | 意味 |
---|---|
-d ディレクトリA | ディレクトリAがディレクトリならば真 |
-f ファイルA | ファイルAが普通のファイルならば真 |
-s ファイルA | ファイルAのサイズが0より大きければ真 |
-e ファイルA | ファイルAが存在するならば真 |
-r ファイルA | ファイルAが読み取り可能ならば真 |
-w ファイルA | ファイルAが書き込み可能ならば真 |
-x ファイルA | ファイルAが実行可能ならば真 |
-d ディレクトリA
# ディレクトリAがディレクトリである場合
if [ -d ${DIR_A} ]; then
# 処理
fi
-f ファイルA
# ファイルAが普通のファイルである場合
if [ -f ${FILE_A} ]; then
# 処理
fi
-s ファイルA
# ファイルAのサイズが0より大きい場合
if [ -s ${FILE_A} ]; then
# 処理
fi
-e ファイルA
# ファイルAが存在する場合
if [ -e ${FILE_A} ]; then
# 処理
fi
-r ファイルA
# ファイルAが読み取り可能な場合
if [ -r ${FILE_A} ]; then
# 処理
fi
-w ファイルA
# ファイルAが書き込み可能な場合
if [ -w ${FILE_A} ]; then
# 処理
fi
-x ファイルA
# ファイルAが実行可能な場合
if [ -x ${FILE_A} ]; then
# 処理
fi
引数の比較オプション
オプション | 意味 |
---|---|
$# | 実行時に指定された引数の数 |
$1 | 実行時に指定された1番目の引数 |
$n | 実行時に指定されたn番目の引数 |
$#
# 実行時に指定された引数の数が2つの場合
if [ $# -eq 2 ]; then
# 処理
fi
# 実行時に指定された1番目の引数が1の場合
if [ $1 -eq 1 ]; then
# 処理
fi
実行結果の比較オプション
オプション | 意味 |
---|---|
$? | 直前のコマンドの実行結果 |
$?
# 直前のコマンドの実行結果が0の場合
if [ $? -eq 0 ]; then
# 処理
fi
まとめ
今回は、シェルスクリプトのif文のオプションをまとめてみました。
忘れがちなオプションなので、都度思い出すことができる記事になれば幸いです。
スポンサーリンク
スポンサーリンク