tail head cat sleep
QR code linking to this page

manページ  — TEST

名称

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 が存在し、それにスティッキビットが立っていれば真になります。
-n string
  string の長さが 0 でなければ真になります。
-p file
  file が名前つきパイプ ( 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 とがマッチする場合に真になります。
-G file
  file が存在し、 そのグループと本プロセスの実効グループ ID とがマッチする場合に真になります。
-S file
  file が存在し、ソケットの場合に真になります。
file1 -nt file2
  file1 が存在し、 file2 よりも新しい場合に真になります。
file1 -ot file2
  file1 が存在し、 file2 よりも古い場合に真になります。
file1 -ef file2
  file1file2 が存在し、これらが同一のファイルを参照する場合に真になります。
string
  string が空文字列でなければ真になります。
s1 = s2 文字列 s1s2 が同一であれば真になります。
s1 != s2 文字列 s1s2 が同一でなければ真になります。
s1 < s2 文字列 s1 が文字列 s2 に対し、文字のバイナリ順において前に来る場合に真になります。
s1 > s2 文字列 s1 が文字列 s2 に対し、文字のバイナリ順において後に来る場合に真になります。
n1 -eq n2
  整数 n1n2 が等しければ真になります。
n1 -ne n2
  整数 n1n2 が等しくなければ真になります。
n1 -gt n2
  整数 n1n2 がより大きければ真になります。
n1 -ge n2
  整数 n1n2 より大きいか等しければ真になります。
n1 -lt n2
  整数 n1n2 より小さければ真になります。
n1 -le n2
  整数 n1n2 より小さいか等しければ真になります。

file がシンボリックリンクの場合、 基本要素 -h-L の場合を除き、 test は参照を手繰りファイルを得て、それに対して式を評価します。

これらの基本要素は以下の演算子と組み合わせることができます:
! expression
  expression が偽ならば真になります。
expression1 -a expression2
  expression1expression2 の両方が真ならば真になります。
expression1 -o expression2
  expression1expression2 のどちらかが真ならば真になります。
(expression )
  expression が真ならば真になります。

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

シェルによっては、本ユーティリティと同一の、組み込みの test コマンドを提供しています。 builtin(1) マニュアルページを参照してください。

文法の曖昧性

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

戻り値

test ユーティリティは次のいずれかの値を返します。
0 式を評価した結果が真である
1 式を評価した結果が偽であるか、式がない
>1 エラーが発生した

関連項目

builtin(1), expr(1), sh(1), symlink(7)

規格

test ユーティリティは、 IEEE Std 1003.2 ("POSIX.2") 仕様の上位互換実装です。

TEST (1) July 3, 2004

tail head cat sleep
QR code linking to this page


このマニュアルページサービスについてのご意見は Ben Bullock にお知らせください。 Privacy policy.

Like a classics radio station whose play list spans decades, Unix simultaneously exhibits its mixed and dated heritage. There's Clash-era graphics interfaces; Beatles-era two-letter command names; and systems programs (for example, ps) whose terse and obscure output was designed for slow teletypes; Bing Crosby-era command editing (# and @ are still the default line editing commands), and Scott Joplin-era core dumps.
— The Unix Haters' handbook