这是外壳的 PID:
nathan@guixlaptop ~ $ $$
bash: 10984: command not found
我导出一个环境变量:
nathan@guixlaptop ~ $ export TESTVAR=test
在 shell 的环境中找不到该变量:
nathan@guixlaptop ~ $ cat /proc/10984/environ | grep TESTVAR || echo "fail"
fail
如何使变量出现在环境中?
这是外壳的 PID:
nathan@guixlaptop ~ $ $$
bash: 10984: command not found
我导出一个环境变量:
nathan@guixlaptop ~ $ export TESTVAR=test
在 shell 的环境中找不到该变量:
nathan@guixlaptop ~ $ cat /proc/10984/environ | grep TESTVAR || echo "fail"
fail
如何使变量出现在环境中?
/proc/.../environ
包含进程的初始环境:要查看更改,您需要启动一个新的 shell:
environ
除非您采取侵入性操作,否则您无法更改正在运行的 shell 中显示的内容;有关详细信息,请参阅进程启动后更改 /proc/PID/environ。我认为您需要处理 NUL 分隔的字符串,然后重新启动 shell 以查看您要查找的结果:
归因于 @aviro 和 @stephenkitt 的简化(见评论)
另一个例子,你可以使用
strings
show proc/$$/environ 文件。