例えばファイル「sample.dat」が存在するかどうか調べるとき
test -f sample.dat
または
[ -f sample.dat ]
とできる。-fが演算子でsample.datが被演算子みたいな感じかな?ファイルの存在以外にも、以下のようにいろいろな判断ができるそうだ。「真」というのはその直後に$?の値が0になることだと...思う。
ファイルに関して
評価式 |
説明 |
-e ファイル名 |
ファイルがあれば真 |
-f ファイル名 |
(ディレクトリなどを除く)ファイルがあれば真 |
-d ディレクトリ名 |
ディレクトリがあれば真 |
-r ファイル名 |
ファイルが存在し、かつ読み取り可能であれば真 |
-w ファイル名 |
ファイルが存在し、かつ書き込み可能であれば真 |
-x ファイル名 |
ファイルが存在し、かつ実行可能であれば真 |
-s ファイル名 |
ファイルが存在し、かつサイズが0より大きければ真 |
-L ファイル名 |
ファイルが存在し、かつシンボリックリンクであれば真 |
ファイル名1 -nt ファイル名2 |
ファイル1の修正時刻がファイル2より新しければ真 |
ファイル名2 -ot ファイル名2 |
ファイル1の修正時刻がファイル2より古ければ真 |
数値に関して
評価式 |
説明 |
数値1 -eq 数値2 |
数値1と数値2が等しければ真 |
数値1 -ge 数値2 |
数値1が数値2以上ならば真 |
数値1 -gt 数値2 |
数値1が数値2より大きければ真 |
数値1 -le 数値2 |
数値1が数値2以下ならば真 |
数値1 -lt 数値2 |
数値1が数値2より小さければ真 |
数値1 -ne 数値2 |
数値1と数値2が等しくなければ真 |
文字列に関して
評価式 |
説明 |
文字列 |
文字列の長さが0以上であれば真 |
-n 文字列 |
上記と同じ? |
-z 文字列 |
文字列の長さが0であれば真 |
文字列1 = 文字列2 |
2つの文字列が等しければ真 |
文字列1 != 文字列2 |
2つの文字列が等しくなければ真 |
論理演算子みたいなもん
評価式 |
説明 |
!条件 |
条件が偽であれば真 |
条件1 -a 条件2 |
条件1と条件2が共に真であれば真 |
条件1 -o 条件2 |
条件1と条件2のどちらかが真であれば真 |