根据 GUI 或 Shell 的不同环境变量

根据 GUI 或 Shell 的不同环境变量

程序的环境变量取决于它是从终端启动还是从桌面启动(通过单击其图标)。

例如:我使用 bash,并在 .bashrc 中设置了特定变量以用于开发目的。当我从命令行启动我选择的编辑器(Sublime Text,但对于任何程序都是如此)时,一切都运行正常。当我从桌面(在本例中为 gnome 3)启动它时,变量丢失了。

所以我的问题是:定义桌面和终端都遵守的​​变量的正确方法是什么?

答案1

中的变量.bashrc仅由 shell 设置bash,如果变量被export设置,shell 会将变量及其值存储在其环境中,并将此环境的副本传递给它启动的任何进程。sublime text从桌面启动不会调用bash读取。您可以通过在文件中定义(和设置).bashrc变量来全局设置变量(您必须创建)。如果您在多用户系统上,您可以用 包围定义,以便其他人(如果这是一个非空集)不会受到您的定义的影响。查看中的其他脚本以获取提示。 exportuser.sh/etc/profile.d/etc/profile.d/user.shif [[ "$USER" = "me" ]] ; then ... fi/etc/profile.d

要查看进程关系和环境继承,可以

pstree -a -c -l -p -u 1

而且当然,man pstree

相关内容