这听起来像是一项简单的任务,但到目前为止我还无法实现:
每当 Debian 11 上发生(图形)登录时,我想有条件地(例如,如果 $XDG_DEBUG == 1,则...)为此用户设置特定的环境变量。环境变量应该在任何终端上设置,稍后由用户调用(例如bash
和zsh
) forGnome Desktop
和Mate 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 脚本中,该脚本将运行您想要调试的应用程序。不要全局设置它,否则您将淹没在来自多个应用程序的调试信息中。