testコマンド
$ test 条件式
または
$ [ 条件式 ]
パス
条件式 | 由来 | 説明 |
---|---|---|
-e FILE |
exists | - ファイルが存在すれば真 |
例: [ -e /etc/passwd ]
|
||
-f FILE |
file | - 通常ファイルであれば真 |
例: [ -f myfile.txt ]
|
||
-d FILE |
directory | - ディレクトリであれば真 |
例: [ -d /tmp/logs ]
|
||
-r FILE |
readable | - 読み取り可能であれば真 |
-w FILE |
writable | - 書き込み可能であれば真 |
-x FILE |
executable | - 実行可能であれば真 |
ファイル
条件式 | 由来 | 説明 |
---|---|---|
FILE1 -nt FILE2 |
newer than | - FILE1 が FILE2 より新しければ真 |
例: [ file1.txt -nt file2.txt ]
|
||
FILE1 -ot FILE2 |
older than | - FILE1 が FILE2 より古ければ真 |
例: [ file1.txt -ot file2.txt ]
|
文字列
条件式 | 由来 | 説明 |
---|---|---|
-z STRING |
zero length | - 文字列が空(長さ0)なら真 |
例: [ -z "$input" ]
|
||
-n STRING |
non-zero | - 文字列が空でなければ真 |
例: [ -n "$input" ]
|
||
STRING1 = STRING2 |
equal | - 2つの文字列が一致すれば真 |
例: [ "$a" = "$b" ]
|
||
STRING1 != STRING2 |
not equal | - 2つの文字列が一致しなければ真 |
例: [ "$a" != "$b" ]
|
数値
条件式 | 由来 | 説明 |
---|---|---|
INT1 -eq INT2 |
equal | - 2つの整数が等しい場合に真 |
例: [ "$a" -eq 100 ]
|
||
INT1 -ne INT2 |
not equal | - 2つの整数が異なる場合に真 |
例: [ "$a" -ne 0 ]
|
||
INT1 -gt INT2 |
greater than | - INT1 が INT2 より大きい場合に真 |
例: [ "$a" -gt 50 ]
|
||
INT1 -lt INT2 |
less than | - INT1 が INT2 より小さい場合に真 |
例: [ "$a" -lt 10 ]
|
||
INT1 -ge INT2 |
greater equal | - INT1 が INT2 以上の場合に真 |
例: [ "$a" -ge 1 ]
|
||
INT1 -le INT2 |
less equal | - INT1 が INT2 以下の場合に真 |
例: [ "$a" -le 100 ]
|
論理式
条件式 | 由来 | 説明 |
---|---|---|
! EXPR |
not | - EXPR が偽であれば真 - EXPR が真であれば偽 |
例: [ ! -d /tmp ]
|
||
EXPR1 -a EXPR2 |
and | - 両方の条件が真なら真(非推奨、&& を使うのが推奨) |
EXPR1 -o EXPR2 |
or | - どちらかが真なら真(非推奨、|| を使うのが推奨) |