シェルプログラムにおけるif文+testコマンドの記述法
【目次】
主に使いそうなオプションの一覧です。
これ以外にもいくつかありますが詳しくは"man test"を参照してください。
これ以外にもいくつかありますが詳しくは"man test"を参照してください。
| オプション(演算子) | 内容 |
| -d file | file が存在していてディレクトリであれば真 |
| -e file | file が存在すれば真 |
| -f file | file が存在していて通常ファイルであれば真 |
| -n string | string の長さが 0 より大きければ真 |
| -p file | file が名前つきパイプであれば真 |
| -r file | file が存在していて読み込み可能であれば真 |
| -s file | file が存在していてファイルサイズが 0 より大きければ真 |
| -w file | file が存在していて書き込みフラグが立っていれば真 |
| -x file | file が存在していて実行可能フラグが立っていれば真 |
| -z string | string の長さが 0 であれば真 |
| -L file | file が存在していてシンボリックリンクの場合に真になります。 |
| file1 -nt file2 | file1 が存在していて file2 よりも新しい場合に真 |
| file1 -ot file2 | file1 が存在していて file2 よりも古い場合に真 |
| string | string が空文字列(NULL)でなければ真 |
| s1 = s2 | 文字列 s1 と s2 が同じであれば真 |
| s1 != s2 | 文字列 s1 と s2 が異なっていれば真 |
| n1 -eq n2 | 整数 n1 と n2 が等しければ真(n1 = n2) |
| n1 -ne n2 | 整数 n1 と n2 が等しくなければ真(n1 != n2) |
| n1 -gt n2 | 整数 n1 が n2 がより大きければ真(n1 > n2) |
| n1 -ge n2 | 整数 n1 が n2 以上であれば真(n1 >= n2) |
| n1 -lt n2 | 整数 n1 が n2 より小さければ真(n1 < n2) |
| n1 -le n2 | 整数 n1 が n2 以下であれば真(n1 <= n2) |
■"/usr/local/etc/unknown"がディレクトリかファイルかを確認する
■変数varが"str1"か"str2"のいずれかであるかを確認する
if [ -d "/usr/local/etc/unknown" ]
then
~指定したパスがディレクトリだった場合~
elif [ -f "/usr/local/etc/unknown" ]
then
~指定したパスがファイルだった場合~
else
~どちらでもない場合(例外)~
fi
■変数varが"str1"か"str2"のいずれかであるかを確認する
if [ "${var}" == "str1" -o "${var}" == "str2" ]
then
~条件があった場合~
else
~合わなかった場合~
fi
作成日:2008.7.30
更新日:2008.7.30