使用 bash 和列表结构导出 `.profile` 中的环境变量

使用 bash 和列表结构导出 `.profile` 中的环境变量

我使用 gdm3 作为我的登录管理器。登录后,PATH我的所有修改.profile均已正确设置并导出。例如,像下面这样的行就可以正常工作:

if [ -d "$HOME/bin" ] ; then
    PATH="$HOME/bin:$PATH"
fi

if [ -d "$HOME/.local/bin" ] ; then
    PATH="$HOME/.local/bin:$PATH"
fi

但是,下面的行无法按预期工作:

# Use colors for less, man, etc.
[[ -f ~/.LESS_TERMCAP ]] && . ~/.LESS_TERMCAP

该文件~/.LESS_TERMCAP只包含一堆export语句。有趣的是,如果我启动终端并输入. .profile,那么~/.LESS_TERMCAP就会获得来源。为什么启动时没有发生这种情况?我遇到了许多包含此类“和列表”结构的点文件,所以我有点困惑。感谢您的所有帮助。

更新:

正如@fra-san 的评论中所指出的,通过注意到显示管理器运行dash而不是bash, 并替换[[为适当的测试结构,部分问题得到了解决。但是,我仍然对以下情况感到困惑:~/.LESS_TERMCAP即使设置了该文件,但未获取该文件PROFILE_VARIABLE~/.LESS_TERMCAP包含以下内容:

export LESS_TERMCAP_mb=$'\e[1;32m'
export LESS_TERMCAP_md=$'\e[1;32m'
export LESS_TERMCAP_me=$'\e[0m'
export LESS_TERMCAP_se=$'\e[0m'
export LESS_TERMCAP_so=$'\e[01;33m'
export LESS_TERMCAP_ue=$'\e[0m'
export LESS_TERMCAP_us=$'\e[1;4;31m'

然而,运行. ~/.profile确实给手册页带来了色彩。我使用 Debian Sid,运行 gdm3 和 i3。请让我知道我可以提供的任何其他信息。

相关内容