我在我的 中设置了一个特定的环境变量.bashrc
,一旦我获取它,它就可以在 shell 本身和我从 shell 启动的 gVim 实例中使用。但是,如果我通过系统 GUI 菜单启动 gVim 实例,该实例就看不到该变量。
根据这个答案,gVim 继承了桌面环境的变量。在这种情况下,有没有办法动态更改该环境中的值或向其中添加新的环境变量?我理解设置变量.profile
将使其在重新启动时可用于桌面环境,但有没有办法在不重新启动或重新登录的情况下进行更改?
答案1
每个进程继承一个复制环境变量。所以,一般来说,不需要——你应该从头开始重新启动整个桌面会话。
如果它是一个单独的程序,那么只需重新启动“系统菜单”就足够了 - 例如在 Xfce4 中,您可以xfce4-panel
从“固定”shell 中终止并重新启动它,它将从您的 shell 中继承更新的环境。
请注意,大多数环境变量应从~/.profile
相反,因为并非所有桌面会话都是通过 bash 启动的,而且即使如此,也很少被告知要读取~/.bashrc
。
作为例外,一些程序具有从外部更新其环境的功能,因为重新启动它们会影响太多东西——例如tmux
,dbus-daemon
或systemd --user
。但即使是它们也无法将新环境推送到已经运行的服务中。