test - 式を評価する

構文

test expression

[ expression ]

説明

test ユーティリティーは、ファイルのタイプのチェック、 ファイルの許可のチェック、2 つのストリングの比較、 または 2 つの算術式の比較を行うことができます。

test ユーティリティーは、 以下のプライマリーを使用してファイルの状態を検査します。

-b file
file が存在し、それがブロック特殊ファイルである場合に真になります。
-c file
file が存在し、それが文字特殊ファイルである場合に真になります。
-d file
file が存在し、それがディレクトリーである場合に真になります。
-e file
file が存在すれば、そのタイプに関係なく真になります。
-f file
file が存在し、それが正規ファイルである場合に真になります。
-g file
file が存在し、そのグループ ID 設定フラグが設定されている場合に真になります。
-G file
file が存在し、それが有効なグループ ID の所有である場合に真になります。
-h file
file が存在し、それがシンボリック・リンクである場合に真になります。
-k file
file が存在し、その制限付き削除フラグが設定されている場合に真になります。
-L file
file が存在し、それがシンボリック・リンクである場合に真になります。
-N file
file が存在し、それがネイティブ・オブジェクトである場合に真になります。
-O file
file が存在し、それが有効なユーザー ID の所有である場合に真になります。
-p file
file が存在し、それがパイプである場合に真になります。
-r file
file が存在し、それが読み取り可能である場合に真になります。
-s file
file が存在し、そのサイズがゼロより大きい場合に真になります。
-S file
file が存在し、それがソケットである場合に真になります。
-u file
file が存在し、そのユーザー ID 設定フラグが設定されている場合に真になります。
-w file
file が存在し、それが書き込み可能である場合に真になります。
-x file
file が存在し、それが実行可能である場合に真になります。 これは、実行ビットがオンであることを示すだけです。 file がディレクトリーである場合は、そのディレクトリーが検索されます。
file1-effile2
file1file2 が、名前は異なるものの、 同じファイル (デバイス番号と inode 番号が同じ) である場合に真になります。
file1-ntfile2
file1file2 より新しい、 または file2 が存在しない場合に真になります。
file1-otfile2
file1file2 より古い、または file2 が存在しない場合に真になります。

test ユーティリティーは、以下のプライマリーを使用して状況検査の状態を検査します。

-o optname
シェル・オプション optname が使用可能である場合に真になります。
-t fd
ファイル記述子 fd がオープン状態で、端末に関連付けられている場合に真になります。

test ユーティリティーは、 以下のプライマリーを使用してストリング比較の状態を検査します。

-n string
string の長さがゼロではない場合に真になります。
-z string
string の長さがゼロである場合に真になります。
string
string が空ストリングではない場合に真になります。
string1 = string2
2 つのストリングが同じである場合に真になります。
string1==string2
2 つのストリングが同じである場合に真になります。
string1!=string2
2 つのストリングが同じではない場合に真になります。
string1 < string2
現行のロケールの照合順序で、string1string2 の前にソートされる場合に真になります。
string1 > string2
現行のロケールの照合順序で、string1string2 の後にソートされる場合に真になります。

test ユーティリティーは、 以下のプライマリーを使用して算術式比較の状態を検査します。

exp1-eqexp2
算術式が等しい場合に真になります。
exp1-neexp2
算術式が等しくない場合に真になります。
exp1-gtexp2
最初の算術式が 2 番目の算術式より大きい場合に真になります。
exp1-geexp2
最初の算術式が 2 番目の算術式より大きいまたは等しい場合に真になります。
exp1-ltexp2
最初の算術式が 2 番目の算術式より小さい場合に真になります。
exp1-leexp2
最初の算術式が 2 番目の算術式より小さいまたは等しい場合に真になります。

次の演算子を使って上記のプライマリーを組み合わせれば、複合式を作成できます。

  • ! expr expr が偽の場合に真になります。
  • expr1 -a expr2 両方の式が真の場合に真になります。
  • expr1 & expr2 両方の式が真の場合に真になります。
  • expr1 && expr2 両方の式が真の場合に真になります。
  • expr1 -o expr2 どちらかの式が真である場合に真になります。
  • expr1 | expr2 どちらかの式が真である場合に真になります。
  • expr1 || expr2 どちらかの式が真である場合に真になります。
  • (expr) 括弧はグループ化のために使用されます。

-a 演算子、& 演算子、 および && 演算子は、-o 演算子、| 演算子、 および || 演算子より優先されます。

オプション

上記を参照。

オペランド

すべての演算子およびフラグは、それぞれ単独の引数として扱われます。

終了状況

  • 0 expression が真。
  • 1 expression が偽。
  • >1 エラー発生。

  1. /home がディレクトリーかどうかを確認する場合:
    test -d /home
  2. ある整数が他の整数以下かどうかを確認する場合:
    test "$index" -le "$count"
  3. 2 つの文字列が等しいかどうかを確認する場合:
    test "$REPLY" = "Yes"