全力で怠けたい

怠けるために全力を尽くしたいブログ。

bash と sh の test コマンドの条件式で使える演算子のチートシート。

はじめに

ちょっとしたことはシェルで済ませるけど、条件分岐をするのに使う test コマンドで使える演算子をたまに忘れるのでメモしておく。

test コマンドの条件式で使える演算子チートシート

文字列を条件判断する演算子

演算子 条件式 説明
-z -z 文字列 文字列が空文字列なら真
-n -n 文字列 文字列が空文字列でなければ真
= 文字列1 = 文字列2 文字列1と文字列2が同じなら真
== 文字列1 == 文字列2 文字列1と文字列2が同じなら真。※bash のみ
!= 文字列1 != 文字列2 文字列1と文字列2が異なるなら真
< 文字列1 < 文字列2 文字列1が辞書順で文字列2より小さければ真
> 文字列1 > 文字列2 文字列1が辞書順で文字列2より大きければ真

数値を条件判断する演算子

演算子 条件式 説明
-eq 数値1 -eq 数値2 数値1と数値2が等しければ真
-ne 数値1 -ne 数値2 数値1と数値2が等しくなければ真
-lt 数値1 -lt 数値2 数値1が数値2より小さければ真
-le 数値1 -le 数値2 数値1が数値2以下ならば真
-gt 数値1 -gt 数値2 数値1が数値2より大きければ真
-ge 数値1 -ge 数値2 数値1が数値2以上ならば真

ファイルを条件判断する演算子

演算子 条件式 説明
-d -d ファイル ファイルがディレクトリなら真
-e -e ファイル ファイルが存在するなら真
-f -f ファイル ファイルが通常ファイルなら真
-g -g ファイル ファイルがセットグループ ID されていたら真
-h -h ファイル ファイルがシンボリックリンクなら真
-k -k ファイル ファイルのスティッキービットがセットしていたら真
-p -p ファイル ファイルが名前付きパイプなら真
-r -r ファイル ファイルが読み込み可能なら真
-s -s ファイル ファイルサイズが 0 よりも大きければ真
-t -t ファイルディスクリプタ ファイルディスクリプタが端末なら真
-u -u ファイル ファイルがセットユーザー ID されていたら真
-w -w ファイル ファイルが読み込み可能なら真
-x -x ファイル ファイルが実行可能なら真
-S -S ファイル ファイルがソケットなら真
-N -N ファイル ファイルの更新日時がアクセス日時以降なら真
-nt ファイル1 -nt ファイル2 ファイル1の更新日時がファイル2の更新日時より新しかったら真
-ot ファイル1 -ot ファイル2 ファイル1の更新日時がファイル2の更新日時より古かったら真
-ef ファイル1 -ef ファイル2 ファイル1とファイル2の i ノードが同じなら真

論理演算子

演算子 条件式 説明
! ! 条件式 条件式の評価結果を否定する。つまり条件式が偽なら真
-a 条件式1 -a 条件式2 条件式1と条件式2が両方とも真なら真
-o 条件式1 -o 条件式2 条件式1と条件式2のどちらかが真なら真