Bashシェルの/proc/*/environを変更する方法

Bashシェルの/proc/*/environを変更する方法

これはシェルのPIDです。

nathan@guixlaptop ~ $ $$
bash: 10984: command not found

環境変数をエクスポートします。

nathan@guixlaptop ~ $ export TESTVAR=test

シェル環境で変数が見つかりません。

nathan@guixlaptop ~ $ cat /proc/10984/environ | grep TESTVAR || echo "fail"
fail

環境に変数を表示するには?

ベストアンサー1

/proc/.../environプロセスの初期環境を含みます。:

このファイルには、現在実行中のプログラムの起動時に設定された初期環境が含まれています。execve(2)

...もし、execve(2)、プロセスは環境を変更します(たとえば、次の呼び出しを介して)。putenv(3)または修正environ(7)直接変数)ファイルにはこれらの変更は反映されません。

変更を表示するには、新しいシェルを起動する必要があります。

$ TESTVAR=test bash
$ grep TESTVAR /proc/$$/environ
grep: /proc/1825425/environ: binary file matches

environ侵入的なアクションを行わないと、実行中のシェルに表示される内容を変更できません。プロセス開始後の/proc/PID/environの変更もっと学ぶ。

おすすめ記事