Help us understand the problem. What is going on with this article?

Bash の if 文(test文)のオプションを整理してみた

More than 3 years have passed since last update.

毎回調べるので備忘として整理する。

数値の比較オプション

書式 : 数値△オプション△数値
例  : if [ ${hoge} -eq 0 ];then

オプション 説明 補足
-eq 等しければ真 equal
-ne 等しくなければ真 not equal
-lt より小なら真 less than
-le 以下なら真 less than or equal
-gt より大なら真 greater than
-ge 以上なら真 greater than or equal

文字列の比較オプション

書式 : 文字列△オプション△文字列
例  :  if [ "${hoge}" = "fuga" ];then

オプション 説明
= 等しければ真
!= 等しくなければ真

ファイル・ディレクトリのオプション

書式 : オプション△ファイルやディレクトリ
例  : if [ -d ${hoge} ];then

オプション 説明
-d ディレクトリなら真
-f 普通のファイルなら真
-s サイズが 0 より大きければ真
-e 存在するなら真
-r 読み取り可能なら真
-w 書き込み可能なら真
-x 実行可能なら真

文字列長のオプション

書式 : オプション△変数や文字列
例  :  if [ -z ${hoge} ];then

オプション 説明
-z 文字列長が 0 なら真
-n 文字列長が 0 より大なら真

その他使うやつ

引数の比較(getopts使わない)

例  : if [ $# -eq 2 ];then

変数 説明
$# 実行時に指定された引数の数
$1 実行時に指定された 1 番目の引数
$n 実行時に指定された n 番目の引数

実行結果の比較

例  : if [ $? -ne 0 ];then

変数 説明
$? 直前のコマンドの実行結果

シェル書いてると、いつも忘れてぐぐってることをここにまとめていこうと思います。

wakayama-y
インフラエンジニア
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away