找出命令使用的环境变量

Jos*_*ost 9 linux environment-variables xubuntu

在Linux环境中(在我的例子中是XUbuntu),有没有办法找出从控制台运行的命令访问哪些环境变量?

必须有可能找出这些变量,因为有人必须为程序提供值.但是有一些默认方法可以做到这一点吗?

这里讨论的程序是xprintidle.

先谢谢你,约斯特

Bas*_*tch 10

假设您想要某个进程运行命令实际使用的变量,您可以使用 ltrace并查找对getenv的调用:

$ ltrace -e getenv ./your_program
Run Code Online (Sandbox Code Playgroud)

当然,getenv可以计算参数(所以你无法真正预测它).

但是,一些(旧的或奇怪的)应用程序可能会使用environ全局或第三个可选参数main; 一些应用程序甚至使用putenv,setenvunsetenv (所有3个是libc函数,而不是shell内置函数)来改变它们的环境.

xprintidle主要是与Xorg服务器进行交互.我很惊讶您期望它使用许多环境变量(除外DISPLAY).