• ベストアンサー

Bシェルで変数名に""を付ける場合は

Bシェルについての質問です。 last=`egrep 'ERROR' $log |tail -1` if [ "$last" = "" ]; then exit fi 上記のif文で$lastに""を付けないとエラーが発生します。 つけることが必要な場合はどのような条件の時なのかご存知の方教えていただけますか?

質問者が選んだベストアンサー

  • ベストアンサー
  • Lean
  • ベストアンサー率72% (435/603)
回答No.1

シェル変数lastに何も設定されていない時、 if [ $last = "" ]; then は、$lastが展開されると if [ = "" ]; then になり、「=」の左側に比較対象が何もないのでエラー[(test)コマンドの文法エラー。 しかし、 if [ "$last" = "" ]; then の場合、$lastが展開されると if [ "" = "" ]; then になり文法的に問題なし。 文字列の比較だから""は付けておいた方がいいのでは?

ritomo
質問者

お礼

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

関連するQ&A