- 646 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/06/18(月) 15:23:43 ]
- >>645
まず、[ ] の中ではシェル変数は基本的にダブルクォートを付けること。 [ -z "$test" ] とする。この場合、$testがセットされていれば偽になる。 これだと真偽が逆になってわかりにくいので、 [ -n "$test" ] または -n は省略できるので [ "$test" ] とする。 [ -e $test ] は、$testがセットされていない時、[ -e ] となってしまい、 これは、"-e" という文字列がサイズゼロかどうか(この場合は2バイト)という 判定がなされるため、$testがセットされていないと真になる。 一方、$testがセットされていると、今度は -e は -eオプションとして解釈され、 $testの中身がファイル名とみなされるため、そんなファイルがなければ偽になる。 更に言うと、-e は Bourne shでは使えないため非推奨。
|

|