シェルは、Linux上のすべてのプロセスの親プロセスです。

シェルは、Linux上のすべてのプロセスの親プロセスです。

私はシェルの範囲と環境についてより深く理解しようとしてきました。export VARIABLE=VALUE 私はこれを行うと、サブシェルでどのように使用できるかについて読みました。だから思い浮かぶ質問を1つお願いします。

私が正しく理解したら、スクリプトファイルを介してバイナリプログラムを実行すると、Linux(debian仮定)で端末を介して設定された環境変数がスクリプトファイルで実行されているすべてのプログラムに表示されるため、環境変数を表示できます。

だから私の質問と混乱は、すべてのシェルの親であるシェルが1つあるということです。階層構造が少し混乱しています。 Debian で端末を開き、 と入力すると、export VARIABLE=VALUEデスクトップをダブルクリックして実行しても、すべてのスクリプトファイルに表示されますか?

私の質問はあいまいではなく、サーバーの障害に適していることを願っています。

ベストアンサー1

シェルかどうかにかかわらず、すべてのプロセスは階層を形成します。親プロセスが子プロセスの環境を管理するために明示的なアクションをとらない限り、環境変数は親プロセスから子プロセスに渡されます。ほとんどのシステムでは、initこのプロセスはプロセスツリーのルートにありますが、組み込み環境などの状況は異なる場合があります。実行すると、pstree -aツリー内のすべてのプロセスが表示されます。

子プロセスで設定した環境変数は親プロセスまたは兄弟プロセスに伝播されないため、ターミナルウィンドウから変数をエクスポートすると、そのウィンドウ内で開始されたプロセスにのみ影響します。したがって、あなたの質問に対する答えは「いいえ」です。

おすすめ記事