希望在BASH中获取BASH脚本的PID的env​​变量

时间:2009-07-29 19:24:41

标签: bash pid env

有什么办法吗?

我有一个导出几个vars并运行组件的脚本。

我希望在流程运行时找出其中一些变量的实际值。 (这适用于此,因为我将把这些值合并到另一个脚本/程序中)

vars本身是PID特定的(如果不明显的话,我对此很新。哈哈!)

谢谢!

5 个答案:

答案 0 :(得分:4)

您可以查询/ proc / PID / environ以查找所有已定义的envvars

答案 1 :(得分:0)

我不确定我理解你的问题。但...... 如果您在bash脚本中导出了一些环境变量,那么它将在正在执行的进程环境中(这是因为子进程派生了进程创建它的所有环境变量)。

答案 2 :(得分:0)

我检查了environ文件中的那个进程,但奇怪的是,它并没有为该进程本身包含所有已定义的env变量。

导出的变量将特定于进程,但我不会总是知道它们。我正在寻找查询哪些env变量是特定的并为流程声明的,以及它们的值是什么。

答案 3 :(得分:0)

嗯,如果我理解正确 - 我想我会让脚本响应“kill”信号,以便使用“trap”提取它的运行时信息。您可以将元数据写入stdout。

可能在脚本中捕获SIGHUP,并将其写入stdout?

答案 4 :(得分:0)

如果是Linux,你可以这样做:

xargs -0 printf '%s\n' < /proc/${pid}/environ