Linuxのスクリプトで、exportコマンドを利用しているのですが、
expoerコマンドの有効範囲についてわかる方がいたらお教えいただけますでしょうか。

有効範囲については、以下のURLを参照しました。
http://www.atmarkit.co.jp/ait/articles/0010/19/n …


例えば、
スクリプトAでは、
export HOGE_KEY='abcd'

スクリプトBでは、
export HOGE_KEY='efgh'

というスクリプトがあって、
両方Cronで実行するときに、
スクリプトAの処理中にスクリプトBが実行されても、
スクリプトの中で定義された変数であるから、スクリプトAの処理には
影響しない(スクリプトAではHOGE_KEY='abcd'のまま)との認識で良いのでしょうか。

よろしくお願い致します。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

環境変数は、プロセス固有のデータで、異なるプロセス同士では全く独立で、プロセス内で変更しても他のプロセスには影響しません。



ということで、
>影響しない(スクリプトAではHOGE_KEY='abcd'のまま)との認識で良いのでしょうか。
は正しいです。

プロセス生成時には、環境変数の初期値としては、親プロセスの環境変数が引き継がれます(子プロセスで別のプログラムを起動する場合は変更して伝えることも可能)。
    • good
    • 0
この回答へのお礼

回答いただきありがとうございます。
>環境変数は、プロセス固有のデータで、異なるプロセス同士では全く独立で、プロセス内で変更しても他のプロセスには影響しません。

>ということで、
>>影響しない(スクリプトAではHOGE_KEY='abcd'のまま)との認識で良いのでしょうか。
>は正しいです。

認識が正しいとのことで、安心しました。

お礼日時:2014/09/25 09:10

それこそやってみれば一発でわかるのでは?



//以下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を実行
    • good
    • 0
この回答へのお礼

回答いただきありがとうございます。

今考えると、
スクリプトにsleep入れたり、時刻をログに出力させるようにして
実際にCronで動かせばわかるような内容でした。
失礼しました。

お礼日時:2014/09/25 09:10

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人が検索しているワード


人気Q&Aランキング

おすすめ情報