POSIX環境変数はシェルに対して定義されていますか?それとも、必ずしもシェルを実行する必要がないプロセスに対して定義されていますか?

POSIX環境変数はシェルに対して定義されていますか?それとも、必ずしもシェルを実行する必要がないプロセスに対して定義されていますか?

APUEから

一部の環境変数は Single UNIX 仕様の POSIX.1 によって定義され、他の環境変数は XSI オプションがサポートされている場合にのみ定義されます。図7.7に、単一のUNIX仕様で定義された環境変数を示し、これをサポートする実装を示します。 POSIX.1で定義されているすべての環境変数は•;で表されます。それ以外の場合は XSI オプションの一部です。この本で説明されている4つの実装では、いくつかの追加の実装依存環境変数が使用されます。 ISO C は環境変数を定義しません。

ここに画像の説明を入力してください。

POSIX環境変数はシェルに対して定義されていますか?それとも、必ずしもシェルを実行する必要がないプロセスに対して定義されていますか?

ありがとうございます。

私の投稿は以下からインスピレーションを得ました。デフォルトの環境変数は何ですか?

答え1

彼ら限られた他のプロセスと同様に、必ずしもそうする必要はありません。存在するどのプロセスでも(一般的に)。

POSIXは意味を与える多くの環境変数に。これは事前に見なければなりません。 POSIXに変数が定義されているという事実は、その変数が必ずしも存在しなければならないという意味ではありませんが(定義にそのように指定されていない場合)、変数がプロセス環境に存在する場合はその値(およびPOSIX定義に従って関連して実行されます。ユーティリティのため。

次の2つのセクションの変数がアプリケーションまたはユーティリティの実行中に環境に表示される場合は、以下に説明する意味を与える必要があります。一部は、ユーザーがログインすると、実装によって環境に配置されます。すべては、ユーザーまたは現在のプロセスの先祖によって追加または変更されることがあります。

いつものように、「環境に配置」は、関連するプロセスツリー(変数セットで作成されたサブプロセス)に影響を与えると理解する必要があるため、グローバル環境はありません。

関連情報