每次登录时设置特定的环境变量

每次登录时设置特定的环境变量

这听起来像是一项简单的任务,但到目前为止我还无法实现:

每当 Debian 11 上发生(图形)登录时,我想有条件地(例如,如果 $XDG_DEBUG == 1,则...)为此用户设置特定的环境变量。环境变量应该在任何终端上设置,稍后由用户调用(例如bashzsh) forGnome DesktopMate Desktop

重要的:环境变量应该在每次登录时设置,因此对于以下顺序:登录,注销,再次登录,它们被设置两次。不涉及重新启动。

如何实现这一目标?

答案1

将这些变量添加到主目录中的文件.bashrc中。.zshrc每次启动 shell 时都会自动加载这些文件(一个用于bash另一个zsh)。

如果您想要更全局的设置 - 创建您自己的.my_envvar(或任何您喜欢的名称)并在两个*rc文件中添加如下代码:

if [ -e $HOME/.my_envar ] ; then
   source $HOME/.my_envar
fi

如果您希望为所有用户(而不仅仅是您自己)设置这些变量,请转到/etc并检查目录是否存在/etc/profile.d。将带有变量的文件添加到其中。这些文件将从中加载/etc/profile(您将在其中找到一个特殊的循环)。

或者,如果您的操作系统不够智能,您可以/etc/profile直接将特殊变量添加到其中。或者创建您自己的/etc/profile.d.

顺便说一句,对于类似变量XDG_DEBUG(或任何调试变量),最好将它们设置在一个特殊的 shell 脚本中,该脚本将运行您想要调试的应用程序。不要全局设置它,否则您将淹没在来自多个应用程序的调试信息中。

相关内容