プロが教えるわが家の防犯対策術!

初めて質問させていただきます。
シェル内でsetenvにて定義された変数を別のシェルにて使う方法があれば教えてください。
よろしくお願いします。

A 回答 (2件)

あ~, foo.csh の中で


bar.csh
という形で呼出しているんですね.
この場合, foo.csh を実行しているシェルとは別に bar.csh を実行するためにシェルを起動します. そして bar.csh の中で設定した環境変数は bar.csh のためのシェルが終了すると同時に破棄されます. そのため bar.csh の中で環境変数を設定しても, foo.csh には影響しません.
これに対し foo.csh の中に
source bar.csh
と書いてやると, foo.csh を実行しているシェルが bar.csh も実行します. なので, 「別のファイルで環境変数を設定し, それを元のシェルにも引き継ぎたい」場合には source (Bourne shell 系なら . というコマンド) を使います.
    • good
    • 1
この回答へのお礼

sourceでうまくいきました。
目からウロコです。
的確なご回答ありがとうございました。

お礼日時:2006/08/16 20:21

その, setenv で環境変数を設定したシェルの子プロセスとして別のシェルを動かせばいいんでは?

この回答への補足

ご回答ありがとうございます。
私の質問の内容が曖昧だったため、補足させていただきます。

foo.cshからbar.cshを呼び出し、bar.cshの中で変数hogeを定義していたのですが、bar.cshに処理が戻ると変数hogeが使えませんでした。

結局、foo.cshにおいて変数hogeをsetenvで流すロジックに気づいたので問題は解決したのですが、上記の処理結果はなぜなのかわかりません。
ご存知でしたらご教授願います。

補足日時:2006/08/16 19:20
    • good
    • 1

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