testの主なオプションと式(ファイルの判定)
| 式 | 真になる条件 |
|---|---|
| -e ファイル名 | ファイルが存在するとき |
| -f ファイル名 | ファイルが通常のファイルのとき |
| -d ファイル名 | ディレクトリのとき |
| -s ファイル名 | ファイルの長さが0ではない(ファイルが空ではない)とき |
| -L ファイル名 | ファイルがシンボリックリンクのとき |
| -h ファイル名 | ファイルがシンボリックリンクのとき(「-L」と同じ) |
| ファイル1 -ef ファイル2 | ファイル1がファイル2のハードリンクのとき |
testの主なオプションと式(ファイル属性の判定)
| 式 | 真になる条件 |
|---|---|
| -r ファイル名 | ファイルが存在し、読み出しの権限がユーザーにあるとき |
| -w ファイル名 | ファイルが存在し、書き込み権限がユーザーにあるとき |
| -x ファイル名 | ファイルが存在し、ファイルの実行権限がユーザーにあるとき |
| -O ファイル名 | ファイルの実体の所有者が実効ユーザーIDと同じとき(※2) |
| -G ファイル名 | ファイルの実体の所属グループが実効グループIDと同じとき |
| -u ファイル名 | ファイルの実体にsetuidビットが立っているとき |
| -g ファイル名 | ファイルの実体にsetgidビットが立っているとき |
| -k ファイル名 | ファイルの実体にstickyビットが立っているとき |
| ファイル1 -nt ファイル2 | ファイル1の修正時刻がファイル2の修正時刻より新しいとき |
| ファイル1 -ot ファイル2 | ファイル1の修正時刻がファイル2の修正時刻より古いとき |
※2 実効ユーザーID(euid)とはプログラムが動作するときの権限。プログラムを起動したユーザーのID(実ユーザーID、ruid)と等しいことが多い。
testの主なオプションと式(標準入出力の判定)
| 式 | 真になる条件 |
|---|---|
| -t 0 | 標準入力が端末 |
| -t 1 | 標準出力が端末 |
| -t 2 | 標準エラー出力が端末 |
| -t 数値 | 数値番目のファイルディスクリプターが端末 |
testの主なオプションと式(文字列の判定)
| 式 | 真になる条件 |
|---|---|
| 文字列1 = 文字列2 | 文字列1と文字列2が等しいとき |
| 文字列1 != 文字列2 | 文字列1と文字列2が等しくないとき |
| -z 文字列1 | 文字列1の長さが0のとき |
| -n 文字列1 | 文字列1の長さが0ではないとき |
testの主なオプションと式(整数の判定)
| 式 | 真になる条件 |
|---|---|
| 数値1 -eq 数値2 | 数値1と数値2が等しいとき(equal) |
| 数値1 -ne 数値2 | 数値1と数値2が等しくないとき(not equal) |
| 数値1 -gt 数値2 | 数値1が数値2より大きいとき(greater than) |
| 数値1 -ge 数値2 | 数値1が数値2より大きいか等しいとき(greater or equal) |
| 数値1 -lt 数値2 | 数値1が数値2より小さいとき(lesser than) |
| 数値1 -le 数値2 | 数値1が数値2より小さいか等しいとき(lesser or equal) |
testの主なオプションと式(その他)
| 式 | 真になる条件 |
|---|---|
| -o オプション | シェルオプションが定義されていた(※3) |
| -v 変数名 | 変数が定義されていた(※3) |
| ! 条件式 | 条件式が偽のとき(not) |
| 条件式1 -a 条件式2 | 条件式1と条件式2がどちらも真のとき(and) |
| 条件式1 -o 条件式2 | 条件式1と条件式2のどちらかが真のとき(or) |
| ( 条件式 ) | ()の中を優先して評価する(※4) |
| TRUE | 常に真 |
| FALSE | 常に偽 |