• ベストアンサー

if文について

cshで書いています。 if文がとおりません。。。 0: Event not found. このようなメッセージが出力されます。 if ($flg == "xxx") then echo "aaa" else if($flg == "yyy") then echo "bbb" exit else echo "ccc" exit endif 内容は上記のような感じです。 どなたか教えて下さい。

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

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.2

0: Event not found というエラーメッセージということは、どこかで、!0 という文字列を使っているんでしょうね。 ! はシェルの特殊文字でヒストリ置換という機能を持ちます。\!0 のように、! の前に \ を書いてください。

toritu
質問者

お礼

ありがとうございます!!! とってもとってもたすかりました。 echo "xxx!!!" と書いていました。

その他の回答 (1)

  • grape16
  • ベストアンサー率55% (52/93)
回答No.1

質問にあるスクリプトを実行してみたところシェル変数flgが定義されていればエラーは出ませんでした。 どこでエラーが出ているのか特定するために cshに-xオプションを付けて実行してみてはいかがでしょう。実行される行が表示されるのでどこがエラーか特定しやすくなると思います。 次の例はわざとエラーになるようにしています。 % cat foo.csh #!/bin/csh -f set flg = yyy if ($flg == "xxx") then echo "aaa" else if ($flg == "yyy") then error! echo "bbb" exit else echo "ccc" exit endif % csh -x foo.csh set flg = yyy if ( yyy == xxx ) then if ( yyy == yyy ) then error! error!: Command not found. echo bbb bbb exit %

toritu
質問者

お礼

このようにデバッグするといいのですね。 ありがとうございます!!! 次回から-xオプションでおってみます。

関連するQ&A