因此,当我从终端调用 emacs 时,我的所有环境变量都从 .bashrc 正确加载。但是,当我从 Ubuntu 应用程序菜单加载 emacs(通过调用 /usr/share/applications/emacs24.desktop)时,它不会加载任何环境变量。我可以调整桌面设置来做到这一点吗?
答案1
.bashrc
并不是定义环境变量的正确位置,正如您所发现的。只有在启动交互式 shell 时才会读取此文件(具体来说,只有在启动 bash 的交互式实例时才会读取,而不是其他 shell 的实例)。然后,从该 shell 启动的进程将继承该环境(每个进程都有自己的环境,继承自其父进程)。因此,如果您直接从 GUI 启动程序,它就没有机会看到这些环境变量。
~/.profile
在或 中定义环境变量~/.pam_environment
。登录时会读取这两个文件。
有关详细信息,请参阅For more information, see.bashrc 的替代品和设置环境变量的最佳发行版/shell 无关方法是什么?