サーバエンジニアの知恵袋 - test コマンド
test コマンドは、ある条件を判定し、真(0)か偽(0 以外)を返す。
if や while の条件判定に使うことが多い。

書式


test expression
もしくは、
[ expression ]

オプション

ファイルに関するテスト


-r file : file が読み取り可能なら真
-w file : file が書き込み可能なら真
-x file : file が実行可能なら真
-f file : file が普通のファイルなら真
-d file : file がディレクトリなら真
-s file : file が 0 より大きいサイズなら真

文字列に関するテスト


-z string : string の長さが0なら真
-n string : string の長さが0より大なら真
string : string が Null でなければ真
str1 = str2 : str1 と str2 が同じなら真
str1 != str2 : str1 と str2 が同じでないなら真

数値に関するテスト


int1 -eq int2 : int1 と int2 が等しいなら真
int1 -ne int2 : int1 と int2 が等しくないなら真
int1 -lt int2 : int1 が int2 より小さいなら真
int1 -le int2 : int1 と int2 以下なら真
int1 -gt int2 : int1 が int2 より大きいなら真
int1 -ge int2 : int1 が int2 以上なら真

その他


! : NOT の意味。直後に続く判定が偽なら真
-a : AND の意味。前後の判定がどちらも真なら真
-o : OR の意味。前後のどちらかが真なら真