「シェル変数は、シェル起動プロセスが開始される環境とどのような関係がありますか?」
私は読んだプロセスが親プロセスの環境を継承する場合、それをエクスポートする必要があるのはなぜですか。
間違っているかもしれない私の現在の理解は、シェル変数が環境にないことです。子が親から変数を継承できるように、変数を環境にエクスポートする必要がありますが、開始がどこで始まるかは不明です。
答え1
「子供が親から変数を継承できるように、変数を環境にエクスポートする必要があります」の現在の理解が正しいようです。
シェル以外のプロセスにも環境変数があり、対応するC言語インタフェースはgetenv()
andとsetenv()
fromですstdlib.h
。 Unix、Linux、および* BSDオペレーティングシステムのシェルは、環境変数を継承されていない通常のシェル変数のように見せます。
したがって、特定の質問に対する答えは次のとおりです。シェル環境にエクスポートされたシェル変数のみが子プロセス環境に表示されます。