dポイントプレゼントキャンペーン実施中!

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

内容は上記のような感じです。
どなたか教えて下さい。

A 回答 (2件)

0: Event not found


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

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

お礼日時:2006/02/24 17:40

質問にあるスクリプトを実行してみたところシェル変数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
%
    • good
    • 0
この回答へのお礼

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

お礼日時:2006/02/24 17:42

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