名前
test - ファイル形式のチェックや値の比較を行う
書式
test [expr]
test [--help] [--version]
説明
test は条件式 expr を評価した結果によって、 0 (真) または 1 (偽) を終了ステータスとして返す。
式の各部分はそれぞれ分離された引数でなければならない。 式は単項式あるいは二項式である。 test はファイルのステータス調査、文字列操作、数値の比較演算を行うことができる。
ほとんどのシェルには同名の組み込みコマンドがあるので、 単に test として実行すると、 ここで記述されたものとは異なった機能のものが実行されるだろう。
ファイル形式のテスト
-b file | file が存在し、ブロックスペシャルファイルであれば真。 |
-c file | file が存在し、キャラクタスペシャルファイルであれば真。 |
-d file | file が存在し、ディレクトリであれば真。 |
-f file | file が存在し、通常ファイル (regular file) であれば真。 |
-h file
-L file | file が存在し、シンボリックリンクであれば真。 |
-p file | file が存在し、名前付きパイプ (named pipe) であれば真。 |
-S file | file が存在し、ソケットであれば真。 |
-t [fd] | fd が端末でオープンされていれば真。
fd が省略された場合のデフォルト値は 1 (標準出力)。
|
ファイルのパーミッションのテスト
-g file | file が存在し、set GID されていれば真。 |
-k file | file が存在し、 sticky ビットが立っていれば真。 |
-r file | file が存在し、読み取り可能であれば真。 |
-u file | file が存在し、 set SUID されていれば真。 |
-w file | file が存在し、書き込み可能であれば真。 |
-x file | file が存在し、実行可能であれば真。 |
-O file | file が存在し、現在の実効ユーザー id による所有であれば真。 |
-G file | file が存在し、現在の実効グループ id による所有であれば真。
|
ファイル特性のテスト
-e file | file が存在すれば真。 |
-s file | file が存在し、サイズが 0 より大きければ真。 |
file1 -nt file2 | |
file1 が file2 より (修正時刻で比較して) 新しければ真。 | |
file1 -ot file2 | |
file1 が file2 より古ければ真。 | |
file1 -ef file2 | |
file1 と file2 のデバイス番号と
i-ノード番号が共に等しければ真。
|
文字列のテスト
string
-n string | string の長さが 0 より大きければ真。 |
-z string | |
string の長さが 0 であれば真。 | |
string1 = string2 | |
二つの文字列が等しければ真。 | |
string1 != string2 | |
二つの文字列が等しくなければ真。
|
数値のテスト
arg1 OP arg2 | |
OP は
-eq, -ne, -lt, -le, -gt, -ge のいずれか。
これらの代数二項演算子は、
それぞれ arg1 が arg2 (に等しい、に等しくない、より小さい、
より小さいか等しい、より大きい、より大きいか等しい) 条件を満たせば真。
arg1 および
arg2 は正の整数、負の整数をとることができる。
また -l string という特殊な式を指定することもでき、
この場合は
string の長さとなる。
|
テストの論理結合
! expr | expr が偽であれば真。 |
expr1 -a expr2 | |
expr1 と expr2 の両方が真であれば真。 | |
expr1 -o expr2 | |
expr1 か expr2 のどちらかが真であれば真。 | |
オプション
GNU test が引数一つだけで起動された場合には、 以下のオプションが認識される:
--help | 標準出力に使用方法のメッセージを出力して正常終了する。 |
--version | |
標準出力にバージョン情報を出力して正常終了する。 | |
注意
プログラムのバグについては bug-sh-utils@gnu.org に報告してください。 ページの更新は Ragnar Hojland Espinosa <ragnar@ragnar-hojland.com> が行っています。