プロが教える店舗&オフィスのセキュリティ対策術

Linuxを利用しており、「『存在するかどうか分からない』環境変数に新しいパスを設定したい」のですが、うまくいきません。
言い方を変えると、対象の環境変数が存在しようが存在しまいが、うまくいくようにしたいのです。

具体的には、ログインシェルに tcsh を使用しているため、hogehoge.cshを作成し、/etc/csh/login.d/に入れました。hogehoge.cshの内容は以下のようになります。

#!/bin/csh
setenv HOGEHOGEPATH /usr/lib/hogehoge:${HOGEHOGEPATH}

ログインしてみると
HOGEHOGEPATH: Undefined variable.
といった内容のエラーが表示され、環境変数も設定されません。

shで設定する方法もありますがcshで良い書き方はないでしょうか。ご教示お願いいたします。

A 回答 (3件)

私の環境の/etc/profile.d/*.cshを参考にすると


============================================
#!/bin/csh
if ( $?HOGEHOGEPATH ) then
setenv HOGEHOGEPATH /usr/lib/hogehoge:${HOGEHOGEPATH}
else
setenv HOGEHOGEPATH /usr/lib/hogehoge
endif
============================================
のように変数が設定されている場合と
されていない場合を分岐させて書いてありました
    • good
    • 0
この回答へのお礼

ありがとうございます。無事設定することができました。

お礼日時:2009/11/19 21:09

環境変数:HOGEHOGEPATH にはsetenvしたけど


シェル内部変数の${HOGEHOGEPATH}には、何も入れてないからでは?
    • good
    • 0

csh なんか使ってないけど, $?なんちゃら で存在するかどうかをチェックする?

    • good
    • 2
この回答へのお礼

変数チェックの方法が分からず悩んでいました。ありがとうございます。

お礼日時:2009/11/19 21:13

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

このQ&Aを見た人はこんなQ&Aも見ています