環境変数は、オペレーティングシステム(Linuxなど)によって提供される機能です。
name=value
をまたはノードで使用して::
あなたは使用して端末またはシェルスクリプトで、その後設定することができます
process.env.name = value;
は、あなたが使用して、シェルでそれらにアクセスすることができます。
echo $name
かノード内で使用:
console.log(process.env.name);
環境変数の範囲は、定義されているプロセスと、実行されるサブプロセスです。ノードプログラムを書く例えば
呼ばenvtest.js:
console.log('Node program:', process.env.test);
process.env.test = 'new value';
console.log('Node program:', process.env.test);
とシェルスクリプトと呼ばれるenvtest1.sh:
Shell script: value
Node program: undefined
Node program: new value
Shell script: value
:
test=value
echo "Shell script: $test"
node envtest.js
echo "Shell script: $test"
がsh envtest1.sh
ウィル印刷を実行しますyuが見ることができるように、Nodeプログラムはエクスポートされなかったため値を取得しません。値を設定して新しい値を使用できますが、シェルスクリプトでは変更されません。今
、別のシェルスクリプトを書く:
test=value
export test
echo "Shell script: $test"
node envtest.js
echo "Shell script: $test"
この時間をsh envtest2.sh
が印刷されます実行している:
Shell script: value
Node program: value
Node program: new value
Shell script: value
をそれはそれは今回輸出されたため、ノードプログラムが値を得たことを意味し、それはそれを変更して新しい値を使用することはできますが、独自のコピーで動作します。このNodeプログラムを呼び出す元のシェルスクリプトでは変更されません。
test=value
export test
あなたが書くことができます:代わりの
速記として
export test=value
。
より複雑な例、envtest3.shを書く:
export test=value
echo "Shell script: $test"
node envtest.js
echo "Shell script: $test"
test=value2 node envtest.js
echo "Shell script: $test"
それが印刷されます。この時間を:
Shell script: value
Node program: value
Node program: new value
Shell script: value
Node program: value2
Node program: new value
Shell script: value
だけにvalue2
へtest=value2 node envtest.js
セットtest
変数の値を実行していることを示していますNodeプログラムのこの呼び出し - シェルスクリプトの残りの部分の値は、以前と同じようにまだvalue
です。
これらは環境変数の3種類のスコープです。通常、シェルスクリプト内の変数はエクスポートされず、実行するプログラムはそれを見ることができません。エクスポートされると、実行するプログラムはそれを見ることができ、変更することができますが、自分のコピーで動作し、シェルスクリプトでは変更されません。
name=value command
を実行すると、環境変数はそのコマンドだけで設定されますが、古い値は残りのスクリプトに残ります。
これは環境変数の基本であり、Nodeでの使用方法です。
私の環境変数は何ですか?(http://stackoverflow.com/questions/4431829/what-are-my-environment-variables) – corn3lius
私はそう思いません@ corn3lius。この質問は、言及された質問に欠けている、実際の深さを、被験者に加える。 – alejdg
@Seltsam、[私の返信](https://stackoverflow.com/questions/40638819/whats-the-underlieing-concept-of-environment-variables/40644231#40644231)はあなたの質問に答えましたか?そうであれば、[回答を受け入れる](http://meta.stackexchange.com/a/5235/157646)を検討して、あなたの質問を検索する他の人々が回答していることが分かるようにしてください。 – rsp