- ベストアンサー
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 内容は上記のような感じです。 どなたか教えて下さい。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
0: Event not found というエラーメッセージということは、どこかで、!0 という文字列を使っているんでしょうね。 ! はシェルの特殊文字でヒストリ置換という機能を持ちます。\!0 のように、! の前に \ を書いてください。
その他の回答 (1)
- grape16
- ベストアンサー率55% (52/93)
質問にあるスクリプトを実行してみたところシェル変数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 %
お礼
このようにデバッグするといいのですね。 ありがとうございます!!! 次回から-xオプションでおってみます。
お礼
ありがとうございます!!! とってもとってもたすかりました。 echo "xxx!!!" と書いていました。