• 締切済み

UNIXシェルIF判定について

こんばんは。 以下のUNIXシェルIF判定を理解できません。 #!/usr/bin/csh if ($ENV_ID != -) goto $ENV_SKIP_ID ここでのIF判定で「-」とは何を意味するのでしょうか? 「-」でなければ「$ENV_SKIP_ID」までスキップさせています。 「-」とは…? ご教授の程、宜しくお願い致します。

みんなの回答

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

- という文字列では? cshのマニュアルがちょっと見つからないので、強化版であるtcshのマニュアルから http://linuxjm.sourceforge.jp/html/tcsh/man1/tcsh.1.html > 演算子 `==' `!=' `=~' `!~' は引数を文字列として比較します。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • UNIX Cシェルで実数の比較

    UNIX Cシェルで実数の比較がしたいのですが、 うまくいきません 以下のような結果になります。 うまく判定するにはどうすればよいのでしょう #!/bin/csh -f set CONSIZE=-0.01 echo "CONSIZE = $CONSIZE" @ CONSIZE = $CONSIZE if( $CONSIZE < 0.0 )then echo " 0以下;;; $CONSIZE" exit endif 実行 CONSIZE = -0.01 @: 数値形式が正しくありません。

  • UNIXのシェル

    シェルに関して質問です。 0526とか0525のところは一日ごとにフォルダが作成されます。 unix\yasu\0526\hobby\test.txt unix\yasu\0526\hobby\test.txt unix\tomo\0525\hobby\test.txt unix\tomo\0525\hobby\test.txt ./check.sh MMDD 実行するときにMMDDのところに日付を入れてフォルダがあればコマンド1を実行するようにしたいです。 引数に指定した文字を判定するにはどうしたらいいのでしょうか? よろしくお願いします。 ----------------------------- #シェルの名前は「check.sh」です #! /bin/sh if [ $1 = "日付" ] ; then コマンド1 else コマンド2 fi -----------------------------

  • Cシェルについて

    Cシェルについて #! /bin/csh ##! /bin/csh -vx setenv NOHUP '/usr/bin/nohup' set AAA_CSH = $NOHUP' XXX.sh file.txt &' ($AAA_CSH >> /dev/null) >>& err.log シェルスクリプトを作成して上記のとおりnohupでXXX.shを実行するように記述します。 エラーがあった場合、err.logに出力するように作成したつもりなのですが、 XXX.shがなかったとき、 「/usr/bin/nohup: XXX.sh:そのようなファイルまたはディレクトリはありません。」 と標準出力されてしまいます。 このエラーメッセージをerr.logに記述するようにしたいのですが、 どうしたらよいでしょうか? よろしくお願いいたします。

  • unixのsourceコマンドについて教えて下さい

    環境変数設定で ファイル(hoge.env)に #!/bin/csh set TEST=a と書きます。 unix> source hoge.env と実行すると、$TESTに環境変数が入ることを確認できますが ファイル(hoge.csh)に #!/bin/csh source hoge.env と書き実行すると、環境変数が設定されません。 最近まで、hoge.cshと実行し問題なく環境変数が設定されていたのですが今日は、これまでと違い環境変数が入りません。 こんなことってあるのでしょうか? OSはSunOS 5.8です 以上よろしくお願いします。

  • シェルファイル内での「setenv」、「unsetenv」の実行 その2

    シェルファイルの先頭行に、 「#!/bin/csh」 と記述したところ「system: Undefined variable.」というメッセージが出力されてしまいました・・・。 どうしたらよいのでしょう?設定の問題なのでしょうか? よくわからないのですが、 「env | grep csh」 と実行してみると「SHELL=/user/bin/csh」という結果がえられるのですが・・・。

  • シェルの中からシェルを呼び出して判定

    UNIXで以下のようなシェルが動作しております。 #!/bin/sh su abcdef -c './GHI'; err=$? if [! $err -eq 0 ] then echo エラーが発生しました fi exit このシェルは「abcdef」ユーザに移ってカレントディレクトリのシェルコマンド「GHI」の結果を判定するというものです。 UNIX上では問題なく動作しております。 これをLinuxでそのまま動作させると「err」に「su abcdef」というユーザ切替コマンド自身の正否を格納しているようです。 「'」でくくられた範囲内で結果をファイルに格納したりして、その後ファイルの中を見て判断するとうまくいくことは分かっておりますが、出来たらファイルなど使いたくありません。 このような場合、みなさんどうしてるんでしょうか? よく出てくるパタンだと思うのですがどうしても良い対処が見つかりません。 どうか宜しくお願いします。 Linuxは「miracle-Linux2.0」というOSです、いわゆるRedHat系です。

  • シェルファイル内での「setenv」、「unsetenv」の実行

    (UNIX環境) シェルファイル内にて 「setenv LANG ja_JP.SJIS」 「unsetenv LANG」 と記述し実行しようとしたのですが、 「setenv:not found」 「unsetenv:not found」 というエラーが出力されてしまいます・・・。 ちなみにコマンドをそのまま実行した場合は正常に処理されます。 kshにて実行されている為で、cshで実行しなければならないということでしょうか? 現在デフォルトにて何シェルが起動しているのか、どのようしたら分かるのでしょうか? 「env | grep csh」 と実行してみると「SHELL=/user/bin/csh」という結果がえられるのですが・・・。

  • unix.linuxのシバンについて

    UNIX・ Linux初心者です。 現在シェルについて学習している所です。 そこで質問なのですが、シェルスクリプトの1行目にシバンと呼ばれるものを書きますよね? #!/usr/bin/sh や #!/bin/shといったような。 この二つそれぞれ同じ実行結果を返してくれるんですが、/usrの有無の違いが分からないんです。 /usrを付けている時と付けていない時の違いを教えていただけないでしょうか?回答お願いします。

  • シェルプログラムの判定について

    皆さんのお知恵をお貸しください シェルはcshです 目的set name = $<で$nameに入る文字が+-*/(一文字毎です)の時エラー処理をしたい 現状下記のプログラムですが判定出来ません set xx = $< set moji = `grep -c '[\-\+\*\/]' xx` if ( $moji == 1 ) then echo 文字に誤りがあります endif  else if ( $moji == 0 ) then echo OKです endif +-*/が入った時にエラーを出したいのですが+-*/をどう判定したらよいのか教えて頂けます様お願い致します。

  • シェルの実行について

    シェル、コマンドを実行に関して質問があります。 シェル名だけ「シェル名」だけで実行できたり「./シェル名」としないと実行できなかったりしますが、この違いはどこからくるのでしょうか? また、「csh シェル名」とするばあいもありますが、これらの明確に違い(使い分け)が分かりません。 ご教授の程宜しくお願いいたします。