Unixコマンド/test

test

機能

testコマンドは、与えられた条件を評価して0(true)、もしくは1(false)をステータスとして返します。
シェルスクリプトなどで多く利用されています。


構文

test [条件]

条件

-b ファイル名             ファイルが存在かつスペシャルファイル(ブロック)
-c ファイル名             ファイルが存在かつスペシャルファイル(キャラクタ)
-d ファイル名             ファイルが存在かつディレクトリ
-f ファイル名             ファイルが存在かつ通常ファイル
-h ファイル名             ファイルが存在かつシンボリックリンク
-L ファイル名             ファイルが存在かつシンボリックリンク
-p ファイル名             ファイルが存在かつ名前付きパイプ
-S ファイル名             ファイルが存在かつソケット
-t ファイル名             ファイルディスクリプタが端末で開いている
-g ファイル名             ファイルが存在かつset gidされている
-k ファイル名             ファイルが存在かつstickyビットが立っている
-r ファイル名             ファイルが存在かつ読み取り可能
-u ファイル名             ファイルが存在かつset uidされている
-w ファイル名             ファイルが存在かつ書き込み可能
-x ファイル名             ファイルが存在かつ実行可能
-O ファイル名             ファイルが存在かつ現ユーザがオーナー
-G ファイル名             ファイルが存在かつ現グループがオーナー
-e ファイル名             ファイルが存在
-s ファイル名             ファイルが存在かつサイズが0より大きい
ファイル1 -nt ファイル2   ファイル1がファイル2より新しい
ファイル1 -ot ファイル2   ファイル1がファイル2より古い
ファイル1 -et ファイル2   ファイル1とファイル2のデバイス番号とiノード番号が同じ
-n 文字列                 文字列の長さが0より大きい
-z 文字列                 文字列の長さが0
文字列1 = 文字列2         文字列1と文字列2が同じ
文字列1 != 文字列2        文字列1と文字列2が同じでない
比較式1 -a 比較式2        比較式1と比較式2が両方真
比較式1 -o 比較式2        比較式1か比較式2どちらかが真

コマンド例

$ test 1 = 1 ; echo $?
0
$ test 1 = 2 ; echo $?
1