testコマンド(条件式を判定する)
形式1
test 条件式
形式2
[ 条件式 ]
形式3
[[ 条件式 ]]
機能
条件式を判定します。条件判定の演算子を用いて記述した条件式を判定し,判定結果が真のときは0を返し,判定結果が偽のときは1を返します。条件式を指定しないでtestコマンドおよび[ ]を実行した場合も1を返します。
条件式については,「5.2 条件判定」を参照してください。
終了コード
終了コード |
意味 |
---|---|
0 |
正常終了
|
1 |
正常終了
|
2 |
エラー終了
|
注意事項
-
「<」および「>」などの演算子はメタキャラクタとして特別な意味を持っています。これらの文字をtestコマンドで使用する場合は,メタキャラクタを無効にする必要があります。
-
[[ ]]の場合,[[と]]の間にある文字列に対して,ワイルドカードやファイル名置換は適用されません。
例を次に示します。この例では,カレントディレクトリに「test.ash」「hhh」というファイルが存在すると仮定しています。
[[ -f *est.ash ]] …(1) [ -f *est.ash ] …(2) test -f *est.ash …(3) [[ -f ?(hhh) ]] …(4) [ -f ?(hhh) ] …(5) test -f ?(hhh) …(6)
この例の(1),(4)の場合,[[ ]]で囲まれたワイルドカードは適用されないため,該当するファイルは存在しないと解釈され,終了コードは1となります。
(2),(3),(5),(6)の場合はワイルドカードが適用されるため,条件式の判定結果は真となり,終了コードは0となります。
-
この正規組み込みコマンドは,コマンドの構文を誤ってもコマンドを実行しているシェルは終了しません。
使用例
-
変数arg1と変数arg2の値が同じかどうか比較します。
test $arg1 -eq $arg2