TEST(1)

名称
test, [ - 条件を評価するユーティリティ

書式
test expression [ expression]

解説
test ユーティリティは、引数の式を評価し、結果が真なら 0 (true)、偽なら 1 (false) を 戻り値として返します。引数の式がない場合も 1 (false) を返します。

演算子やフラグなどは、一つ一つ独立な引数として test ユーティリティに渡します。

以下のもので式が構成されます:

-b file
    file が存在し、それがブロックスペシャルファイルであるならば真になります。

-c file
    file が存在し、それがキャラクタスペシャルファイルであるならば真になります。

-d file
    file が存在し、それがディレクトリであるならば真になります。

-e file
    file が存在すれば真になります (ファイルの種類には関知しません)。

-f file
    file が存在し、それが通常ファイルであるならば真になります。

-g file
    file が存在し、それに SETGID フラグが立っていれば真になります。

-h file
    file が存在し、それがシンボリックリンクであるならば真になります。 このオペレータは、前バージョンとの互換性を維持させるためにあります。 このオプションが存在することを頼らずに、代りに -L オプションを使いなさい。

-k file
    file が存在し、それに sticky ビットが立っていれば真になります。

-n string
    string の長さが 0 でなければ真になります。

-p file
    file が named pipe (FIFO) であるならば真になります。

-r file
    file が存在し、それが読み込み可能であれば真になります。

-s file
    file が存在し、そのファイルサイズが 0 より大きければ真になります。

-t file_descriptor
    ファイルディスクリプタ番号が file_descriptor であるファイルがオープンされており、これが端末であれば真になります。

-u file
    file が存在し、それに SETUID フラグが立っていれば真になります。

-w file
    file が存在し、書込み可能であれば真になります。真ということは、 書込み可能フラグが立っているということを表すに過ぎません。 ファイルが読み込み専用のファイルシステム上にあると、たとえ この判定が真であっても書込みはできません。

-x file
    file が存在し、実行可能であれば真になります。真ということは、 実行可能フラグが立っているということを表すに過ぎません。もし file がディレクトリの場合、真は file が検索可能であることを表します。

-z string
    string の長さが 0 であれば真になります。

-L file
    file が存在し、それがシンボリックリンクであれば真になります。

-O file
    file が存在し、それの所有者が自プロセスの実効ユーザ ID (effective user ID) と同一であれば真になります。

-G file
    file が存在し、それの所有者が自プロセスの実効グループ ID (effective group ID) と同一であれば真になります。

-S file
    file が存在し、ソケットであれば真になります。

file1 -nt file2
    file1 が存在し、 file1 が file2 より新しければ真になります。

file1 -ot file2
    file1 が存在し、 file1 が file2 より古ければ真になります。

file1 -ef file2
    file1 , file2 が存在し、それらが同じファイルを参照していれば真になります。

string
    string が空でなければ真になります。

s1 = s2
    文字列 s1 と s2 が同一であれば真になります。

s1 != s2
    文字列 s1 と s2 が同一でなければ真になります。

s1 < s2
    文字列 s1 が ASCII コード順で s2 より先になる場合に真になります。

s1 > s2
    文字列 s1 が ASCII コード順で s2 より後になる場合に真になります。

n1 -eq n2
    整数 n1 と n2 が同じならば真になります。

n1 -ne n2
    整数 n1 と n2 が同じでなければ真になります。

n1 -gt n2
    整数 n1 が n2 がより大きければ真になります。

n1 -ge n2
    整数 n1 が n2 より大きいか等しければ真になります。

n1 -lt n2
    整数 n1 が n2 より小さければ真になります。

n1 -le n2
    整数 n1 が n2 より小さいか等しければ真になります。

これらの基本要素は以下の演算子と組み合わせることができます:

! expression
    expression が偽ならば真になります。

expression1 -a expression2
    expression1 と expression2 の両方が真ならば真になります。

expression1 -o expression2
    expression1 と expression2 のどちらかが真ならば真になります。

(expression)
    expression が真ならば真になります。

-a 演算子は -o 演算子よりも優先されます。

文法の曖昧性
test に使用されている文法は本質的に曖昧です。ある程度の一貫性を確保するため、 p1003.2 の D11.2/4.62.4 節で述べられているケースに関しては、この標準化文書が 規定する規則に一貫して従った評価が行われます。しかしその他のケース では、コマンドの持つ意味の曖昧さに左右されます。

戻り値

0   式が真と評価された

1   式が偽と評価されたか、式がない

>1  エラーが起こった

標準
test ユーティリティは p1003.2 のスーパーセットをインプリメントしてあります。