シェルはどのように環境変数を/どこに保存しますか?

シェルはどのように環境変数を/どこに保存しますか?

$ PWD、$ PATH、$ USERNAMEなどがあります。私は独自のシェルを開発しており、今日の環境変数を導入しました。私が行う方法は、pwd、pathなどという文字列を生成することです。したがって、$ PWDなどのコマンドがエコーされると、pwdを印刷するように指示します。これはbashのようなものですか?まだ環境変数を設定できる条件はありませんが、これに取り組んでみましょう。私の主な質問は、実際のシェルがどこにあり、これを行うかです。

もう少し関連するもう1つの質問は、printenvがこれらすべてとどのように関連していますか? printenvはバイナリであり、現在実行中のシェルの代わりに常にbash環境変数を印刷するので(明らかにパスとパスワードで設定されたプログラムで文字列をどのように検出しますか?)次に始めます。これを持っていますか?

ベストアンサー1

シェルは任意の方法で環境変数を保存できます。これは実際には関係ありません。関連することは、シェルがprintenvシステムコールを介して環境を子プロセス(含む)に渡すことができる必要があることですexecve

おすすめ記事