- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:スクリプト中のexportコマンドの有効範囲)
exportコマンドの有効範囲とは?
このQ&Aのポイント
- Linuxのスクリプトでは、exportコマンドを利用して環境変数を設定することがあります。
- exportコマンドによって設定された環境変数は、そのスクリプトの実行中に限定されます。
- 別のスクリプトで同じ名前の環境変数を設定しても、元のスクリプトの環境変数には影響しません。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
環境変数は、プロセス固有のデータで、異なるプロセス同士では全く独立で、プロセス内で変更しても他のプロセスには影響しません。 ということで、 >影響しない(スクリプトAではHOGE_KEY='abcd'のまま)との認識で良いのでしょうか。 は正しいです。 プロセス生成時には、環境変数の初期値としては、親プロセスの環境変数が引き継がれます(子プロセスで別のプログラムを起動する場合は変更して伝えることも可能)。
その他の回答 (1)
- yambejp
- ベストアンサー率51% (3827/7415)
回答No.1
それこそやってみれば一発でわかるのでは? //以下a.sh #!/bin/sh echo "a"; export HOGE_KEY='abcd'; echo $HOGE_KEY; ./b.sh echo $HOGE_KEY; ./c.sh echo $HOGE_KEY; //以下b.sh #!/bin/sh echo "b"; echo $HOGE_KEY; export HOGE_KEY='efgh'; echo $HOGE_KEY; ./c.sh //以下c.sh #!/bin/sh echo "c"; echo $HOGE_KEY; export HOGE_KEY='ijkl'; echo $HOGE_KEY; として、./a.shを実行
質問者
お礼
回答いただきありがとうございます。 今考えると、 スクリプトにsleep入れたり、時刻をログに出力させるようにして 実際にCronで動かせばわかるような内容でした。 失礼しました。
お礼
回答いただきありがとうございます。 >環境変数は、プロセス固有のデータで、異なるプロセス同士では全く独立で、プロセス内で変更しても他のプロセスには影響しません。 > >ということで、 >>影響しない(スクリプトAではHOGE_KEY='abcd'のまま)との認識で良いのでしょうか。 >は正しいです。 認識が正しいとのことで、安心しました。