• 締切済み

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です 以上よろしくお願いします。

みんなの回答

回答No.2

携帯からなんで簡素ですいません。記述が source ./ファイル名 でもかわらないですよね?

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

ん~, おかしいなぁ.... hoge.csh を実行しても環境変数の設定はできないはずなんだけど.... そう思ったわけ: hoge.csh を実行すると, 「現在のシェルとは別に」csh が起動されます. で, その csh の中で source するので, その csh の中では指定した環境変数が設定されます. が, その csh は hoge.csh の終了とともに終了するので, 現在のシェルには設定した環境変数は引き継がれないはず. ということなので, 「これまでは hoge.csh をどのように実行していたのか」などを書いてもらえませんか?

wild-river
質問者

お礼

どうもお返事ありがとうございます。 これまで環境変数をセットする時、 1. unix>source hoge.csh 2. unix>hoge.csh 1,2どちからで、あまり意識せず実行してたのが原因であったと、気がつきました。1でhoge.cshの中でsourceの記述している上に、さらにsourceを実行しているため、混乱してしまったのではないかと思います。 ただ、これまで2で実行した時、何故うまくいってたのか、はっきりしてませんがたまたま、問題でなかったのかもしれません。 混乱させて申し訳ありませんでした。

関連するQ&A

専門家に質問してみよう