环境变量未普遍加载(例如NNN文件浏览器)

环境变量未普遍加载(例如NNN文件浏览器)

使用arch-linuxwithxorgdwm,环境变量似乎不适用于整个系统。例如,在启动NNN文件浏览器时手动启动终端仿真器 ( st) 全部书签可用(NNN 通过环境变量加载设置,这里在.profile文件内部设置,从.bashrc文件中加载它们)。但是,当我通过 -keybind 启动 NNNdwm书签不(!)可用(这里 NNN 是通过st -e nnn更精确的方式启动的,即通过的文件{ "st", "-e", "nnn", NULL };内部)。所以看来这里的环境变量在这种情况下没有加载。config.hdwm

你知道为什么吗?或者说如何解决这个问题?

编辑添加了.profile文件内容:

if [ -n "$BASH_VERSION" ]; then
    # include .bashrc if it exists
    if [ -f "$HOME/.bashrc" ]; then
        . "$HOME/.bashrc"
    fi
fi

EDIT-2:在里面添加了书签加载行.bashrc

export NNN_BMS='h:~/;d:~/Documents/'

答案1

.profile由基于 Bourne 的 shell 读取(例如/bin/shbash)。如果没有启动这样的 shell,则.profile不会被读取。听起来你是在没有外壳的dwm情况nnn下启动的st

如果在父进程(在本例中为 dwm 以及任何前因)中设置了环境变量,则它将由所有生成的子进程继承。根据您启动 X 的方式,有很多方法可以做到这一点 - 太多,无法在没有更多上下文的情况下枚举,但可能在~/.xinitrc或中~/.xsession

另一种方法是使用 PAM,我认为默认情况下,在 arch 上,它会$HOME/.pam_environment在您登录时读取,并且您可以NAME=VALUE将对放入其中。

相关内容