我的操作系统中有一个全局环境变量,它被声明为FOOBAR
当我回应它时,我收到了正确的输出:
$ echo $FOOBAR
localhost%6200
我想知道在哪里定义,因为我需要为某些进程更新其值。目前,我在执行进程之前在脚本中手动声明此值,只是为了覆盖它:
#!/bin/sh
# other comands...
export FOOBAR=localhost%16200
# rest of script
不过,我很好奇为什么我找不到这个变量的定义。
我曾经看过几篇类似的帖子:
- 如何永久设置环境变量(尝试查看其他地方可以找到环境变量)
- 如何在 Linux 上查找所有包含特定文本的文件?
- 如何确定环境变量来自哪里?
我研究了~/.bashrc
、、/etc/profile
脚本/etc/profile.d/
,执行了多条命令并尝试了不同的变化,例如在全部/etc
和中搜索/home/MyUser
,但仍然没有运气。
我得到的唯一提示是通过搜索得到的输出/home/MyUser
:
$ find /home/MyUser -type f -exec grep -F FOOBAR {} +
... lines ...
/home/MyUser/.xsession-errors:dbus-update-activation-environment: setting FOOBAR=localhost%6200
然后我尝试使用此命令查看为 dbus 定义的变量
$ systemctl --user show-environment
... among other variables ...
FOOBAR=localhost%6200
我看见了它!
我如何跟踪这个环境变量定义?