- 締切済み
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です 以上よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- kajihirokun
- ベストアンサー率20% (1/5)
回答No.2
携帯からなんで簡素ですいません。記述が source ./ファイル名 でもかわらないですよね?
- Tacosan
- ベストアンサー率23% (3656/15482)
回答No.1
ん~, おかしいなぁ.... hoge.csh を実行しても環境変数の設定はできないはずなんだけど.... そう思ったわけ: hoge.csh を実行すると, 「現在のシェルとは別に」csh が起動されます. で, その csh の中で source するので, その csh の中では指定した環境変数が設定されます. が, その csh は hoge.csh の終了とともに終了するので, 現在のシェルには設定した環境変数は引き継がれないはず. ということなので, 「これまでは hoge.csh をどのように実行していたのか」などを書いてもらえませんか?
お礼
どうもお返事ありがとうございます。 これまで環境変数をセットする時、 1. unix>source hoge.csh 2. unix>hoge.csh 1,2どちからで、あまり意識せず実行してたのが原因であったと、気がつきました。1でhoge.cshの中でsourceの記述している上に、さらにsourceを実行しているため、混乱してしまったのではないかと思います。 ただ、これまで2で実行した時、何故うまくいってたのか、はっきりしてませんがたまたま、問題でなかったのかもしれません。 混乱させて申し訳ありませんでした。