• ベストアンサー
  • すぐに回答を!

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
  • 閲覧数1761
  • ありがとう数4

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

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

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

共感・感謝の気持ちを伝えよう!

質問者からのお礼

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

関連するQ&A

  • Bシェルのif文

    if文の否定について教えてください。 if $aa='xxx' then else echo yyy fi 間違っているかもしれませんが上に書いたことをやろうとしています。 他の言語の if(!($aa='xxx'))echo yyy; をBシェルのif文で書くにはどうしたらいいですか? $aa='xxx'を$aa!='xxx'にするのではなくて、その外側のifの書式を教えてください。 最初に書いたコードでは、if(!条件)を知らないので if(条件) else 処理 endif のように書きました。

  • この真偽値は何の為?

    ごくごく初歩的すぎる為か、検索しても答えに尋ねあたらず、質問させてください。 PHPの「連想配列」の項で、参考書の例文(一部変更しています・下記)において、8行目に $flg = false; とありますが、なぜここでこの真偽値が必要なのかわかりません。 予めfalseを入れておいて後からtrueに変わる分岐がある例文は以前ありましたが、今回は以降に $flg が出てこない為、悩んでいます。 よろしくお願いいたします。 <?php $data = array( 'aaa' => 'aaa@xxx.com', 'bbb' => 'bbb@yyy.com', 'ccc' => 'ccc@zzz.com' ); $flg = false; echo "名前は?"; $a = trim(fgets(STDIN)); if($data[$a] == null){ echo "データは見当たりません。"; } else { echo $a . "のメールアドレスは" . $data[$a] . "です。"; } ?>

    • ベストアンサー
    • PHP
  • vbsのif文で複数条件の判定

    例えば以下である場合、 WScript.echo AAA WScript.echo BBB vbsを実行すると "?"が表示されます。 "OK"が表示されない原因として考えられる事はありますでしょうか If AAA = false Then If BBB = false Then WScript.echo "OK" else WScript.echo "NG" End If else WScript.echo "?" End If

その他の回答 (1)

  • 回答No.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オプションでおってみます。

関連するQ&A

  • cshの条件式について教えてください

    cshで該当ディレクトリにファイルがなければOK、あればエラーというような処理をしようと思っています。 しかし、下記のような記述ではうまくできません。 1) *************************** if ( -e $DIR/*.* ) then echo "NG" exit 1 else echo "OK" endif exit 0 *************************** if文でなく、外にだせばうまくいくのですが... 2) *************************** test -e $DIR/*.* if($status == 0) then echo "NG" exit 1 else echo "OK" endif exit 0 **************************** if ( test -e $DIR/*.* ) then... でもだめでした。 どうにかしてif文で一発判定をしたいと思っているのですが、正しい記述方法を教えてください。 よろしくお願いします。

  • VBAでif文にorを使う場合の仕様

    http://www.relief.jp/itnote/archives/vba-if-or.php このページにも書かれてあるのですが、 Sub textss() aaa = 2 If aaa = 0 Or 1 Then bbb = 1 ElseIf aaa = 2 Then bbb = 2 End If ccc = bbb End Sub を実行すると cccには2が代入されそうなのですが、実際には1が代入されてしまいます。 If aaa = 0 Or aaa = 1 Then と入力する必要があります。 それでは、 If aaa = 0 Or 1 Then とした時、プログラムではどういう処理がなされているのでしょうか?

  • SQL文 テーブル1つに複数のデータ

    お世話になっております。 SQLでの質問です。 --テーブル---------- F_1 F_2 AAA BBB AAA CCC BBB XXX CCC DDD DDD YYY 1.F_1のAAAを条件にF_2のBBB・CCCを取得し、 F_1のBBB・CCCと、F_2のXXXとDDDを取得します。 2.次に、取得したF_2のXXX・DDDを条件に、F_1のDDD、F_2のYYYを取得します。 これを1つのSQLで実行したいのですが、副問合せを駆使しても、良いSQLが思い浮かびません。 有識者の方、ご享受頂きたいです。 宜しくお願い致します。

  • 要素名を表示させたい

    <data>   <aaa xxx="0">     <yyy zzz="1"/>     <yyy zzz="2"/>   </aaa>   <bbb xxx="0">     <yyy zzz="1"/>     <yyy zzz="2"/>   </bbb>   <ccc xxx="0">     <yyy zzz="1"/>     <yyy zzz="2"/>   </ccc> </data> 上のようなXMLから、XSLのvalue-ofなどを使って、 要素名aaa、bbb、cccを表示させるにはどう記述すればいいのでしょうか?

    • ベストアンサー
    • XML
  • cshで変数名の入れ子ができない

    こんなことをしたいと考えています。 --------------------- set aaa="bbb" set bbb="ccc" echo $aaa echo $bbb echo $($aaa) --------------------- 期待する実行結果としては、 --------------------- bbb ccc ccc --------------------- という感じです。 エラーになってしまうのですが、何かいい逃げ方はありませんか? cshでなくてshでも構いません。 よろしくお願いします。

  • XMLの特定のデータを書き込むには?

    下記のXMLファイルを読み込んで、 タグYYYのキーでKEY2を検索し、 子要素AAAの値のData2を書き換えるという処理を 作ろうとしてるのですが、 なかなか解決策が見つかりません。 よろしくお願い致します。 例: abc.xml <XXX> <YYY KKK="KEY1"> <AAA>Data1</AAA> <BBB>Data2</BBB> <CCC>Data3</CCC> </YYY> <YYY KKK="KEY2"> <AAA>Data1</AAA> <BBB>Data2</BBB> <CCC>Data3</CCC> </YYY> <YYY KKK="KEY3"> <AAA>Data1</AAA> <BBB>Data2</BBB> <CCC>Data3</CCC> </YYY> </XXX>

  • NTのバッチを会話形式にしたい

    WindowsNT4.0(SP6)で、バッチファイルを作ろうと思っています。 会話形式で標準入力からの入力待ちで処理を止めたいのですが、どうしたらいいのでしょうか? Solarisなら下のような感じなのですが、Windowsではどうやったらいいのかわかりません。 どうか教えてください。 Solaris(csh)の場合・・・ #!/bin/csh echo -n "年齢入力" set innum=$< # if ($innum < 19)then echo "あなたは成人ではありません" else echo "あなたは成人です" endif exit

  • セルのIF分の質問です

    セルに入れる IF分を 教えてください NGを 分解してみたのですが・・・・ =IF(N3=1,then     -M2, else     IF(K2=1, then       IF(M2<P3-M3, then          M2      Else         P3-M3,       endif      else          IF(K2=-1,then           IF(M2<M3-P3,then               M2,           Else               M3-P3,            endif         else            0         endif)       endif) endif) N3 は 1 もしくは 0。 K2 は 1,-1,0 の3通りです IF が 5個ですから ) も 5個?(ENDIF も 5個 だし?) といった ことで お手数ですが

  • bashで、gotoのようなラベルによるジャンプ構文をしたいのですが、方法をご教授ください。

    bashで、gotoのようなラベルによるジャンプ構文をしたいのですが、方法をご教授ください。 今はif分毎で、エラー時にメール配信処理してますが、全て同じあて先配信なので、 簡潔に処理内容をまとめたいです。 echo "aaa" if [ $? -ne 0 ] then echo "error desu" > honbun.txt mailx -s "error" aaa@aaa.c.jp < honbun.txt exit 1 else echo "ok" fi echo "bbb" if [ $? -ne 0 ] then echo "error desu" > honbun.txt mailx -s "error" aaa@aaa.c.jp < honbun.txt exit 1 else echo "ok" exit 0

  • VB6,Ifから抜けるには?

    If a = b then   xxx  If c = d then    ここ!  End If   yyy End If zzz 上のここ!から抜け、zzz以降の処理を継続するにはどうすればよいでしょうか? Exit Subをやってしまうとプロシージャ自体から抜けてしまいます。