電子書籍の厳選無料作品が豊富!

Bシェルについての質問です。
last=`egrep 'ERROR' $log |tail -1`
if [ "$last" = "" ]; then
exit
fi

上記のif文で$lastに""を付けないとエラーが発生します。
つけることが必要な場合はどのような条件の時なのかご存知の方教えていただけますか?

A 回答 (1件)

シェル変数lastに何も設定されていない時、



if [ $last = "" ]; then

は、$lastが展開されると

if [ = "" ]; then

になり、「=」の左側に比較対象が何もないのでエラー[(test)コマンドの文法エラー。

しかし、

if [ "$last" = "" ]; then

の場合、$lastが展開されると

if [ "" = "" ]; then

になり文法的に問題なし。

文字列の比較だから""は付けておいた方がいいのでは?
    • good
    • 0
この回答へのお礼

早速の回答ありがとうございます。
大変分かりやすい説明をしていただきました。
ありがとうございました。

お礼日時:2006/08/21 20:08

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!