- ベストアンサー
『存在するかどうか分からない』環境変数にcshで新しいパスを設定したい
Linuxを利用しており、「『存在するかどうか分からない』環境変数に新しいパスを設定したい」のですが、うまくいきません。 言い方を変えると、対象の環境変数が存在しようが存在しまいが、うまくいくようにしたいのです。 具体的には、ログインシェルに tcsh を使用しているため、hogehoge.cshを作成し、/etc/csh/login.d/に入れました。hogehoge.cshの内容は以下のようになります。 #!/bin/csh setenv HOGEHOGEPATH /usr/lib/hogehoge:${HOGEHOGEPATH} ログインしてみると HOGEHOGEPATH: Undefined variable. といった内容のエラーが表示され、環境変数も設定されません。 shで設定する方法もありますがcshで良い書き方はないでしょうか。ご教示お願いいたします。
- みんなの回答 (3)
- 専門家の回答
関連するQ&A
- CSHの環境変数の設定
CSHで外部で定義したconfigファイルから変数を読み込み そのシェル及び子シェル内で有効な変数として使用したのですが どのような方法がありますでしょうか? 以下の方法だと親シェルからでは子シェルで設定した変数が読み込めないため困っています。 config.csh #!/bin/csh -f setenv AAA aaa test.csh #!/bin/csh -f set APP_ROOT = `dirname $0` cd $APP_ROOT set CONFIG_FILE=$APP_ROOT"/config.csh" echo $AAA
- 締切済み
- Solaris系OS
- csh (tcsh)での環境変数の長さの制限について教えて下さい。
Solaris8 (SPARC)上でJavaでいろいろ開発をしているのですが、 シェルの環境変数の長さに制限があるようで困っています。 具体的には、あちこちに散在しているjarファイルを参照する必要 があるので、環境変数 $CLASSPATHが非常に長くなっていて、 現在の設定以上に CLASSPATHを追加しようとすると「Word too long」 というエラーが出て設定できません。 1つの環境変数の長さの制限を変更することは可能でしょうか? もしくはなにか回避策があれば教えて下さい。 使用しているシェルは tcsh です。
- ベストアンサー
- その他(OS)
- 標準入力からシェル変数及び環境変数に値を設定する(bash)
標準入力からシェル変数及び環境変数に値を設定する方法で、cshの場合は「set 変数=$<」ということは確認しているのですが、bashの場合はどのようにすればよろしいのでしょうか?ご教授お願いいたします。
- ベストアンサー
- Linux系OS
- tcshなのにスクリプト構文中のsetenvが動かない。
シェルスクリプトを勉強しております。 testと名付けたファイルに スクリプトの構文の頭に#!/bin/tcshを記入せず setenv(csh系だけで動くコマンド)のみを記載して 実行権を与えて ./test と打つと etenv: command not found になってしまいます。 ここで、やりたいことは文頭にシェルを指定せずに 実行をすると、現在のtcsh上で実行されるはずなのに setenv: command not found になってしまうところに疑問がございます。 ログインシェルをtcshに変えたりも試してみても 疑問が解決しないので、なにかアドバイス等でもいただけないでしょうか。よろしくお願い致します。
- 締切済み
- その他([技術者向] コンピューター)
- tcsh のプロンプト
csh のプロンプトは % だと思うのですが、tcsh のプロンプトはデフォルトでは > なのでしょうか?ログインシェルを tcsh にしたのですが、プロンプトが % でないので、なんだか bash を使ってるような気分です。これやっぱり bash になってませんか? 環境は、FreeBSD です。
- ベストアンサー
- その他(OS)
- .cshrcでのエラー
シェル初心者です。 現在、さくらのレンタルサーバで.cshrcの設定を行っています。 os :FreeBSD 9.1 64bit Perl : Ver.5.8.9です。 http://d.hatena.ne.jp/perlcodesample/touch/20101027/1278596435を参考にして .cshrc内に setenv PERL5LIB /home/hogehoge/local/lib/perl5:/home/hogehoge/local/lib/perl5/site_perl:$HOME/perl5/lib/perl5:$PERL5LIB; # @@ Added by CPAN local setup tool @@ setenv PERL_CPANM_OPT="--local-lib=~/perl5"; という記述を追加しましたが % source .cshrcを実行すると setenv: Variable name must contain alphanumeric characters. というエラーが出ます。 何やら変数名をアルファベットで書けと言っているようですが、 #setenv PERL_CPANM_OPT="--local-lib=~/perl5"; というようにこの一行をコメントアウトするとエラーは出ません。 どこがまずいのでしょうか? 初歩的な質問で恐縮ですが、宜しくご教授お願いいたします。
- ベストアンサー
- BSD系OS
- Linux環境変数設定(putenv?setenv?)
RedHatLinux7.3(2.96-110)、gcc(2.96 20000731)です。 C言語でプログラミングしていますが、環境変数設定がうまくいかず困っています。 下記の2つで試しましたが、どちらも戻り値は正常(0)なのに環境変数には設定されないのです。 その1: nRet = putenv( "HOGE_HOGE_VER=1.0.0" ); その2: nRet = setenv( "HOGE_HOGE_VER", "1.0.0", 1 ); この使い方は間違っているのでしょうか?それと、putenv、setenvの違いはなんなのでしょうか? ちなみに、既に設定されている環境変数をgetenvすることは、ちゃんとできるのですが。 よろしくお願いします。
- ベストアンサー
- C・C++・C#
お礼
ありがとうございます。無事設定することができました。