환경 변수는 보편적으로 로드되지 않습니다(예: NNN 파일 브라우저).

환경 변수는 보편적으로 로드되지 않습니다(예: NNN 파일 브라우저).

arch-linuxwith xorg및 을 사용하면 dwm환경 변수가 전체 시스템에 적용되지 않는 것 같습니다. 예를 들어 NNN파일 브라우저를 시작할 때수동 시작터미널 에뮬레이터( st) 모두북마크를 사용할 수 있습니다(NNN은 환경 변수를 통해 설정을 로드합니다. 여기서는 .profile파일 내부에 설정하고 .bashrc파일에서 로드합니다.) 그러나 -keybind를 통해 NNN을 시작 dwm하면북마크를 사용할 수 없습니다(!)(여기서 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

편집-2: 내부에 북마크 로딩 라인을 추가했습니다..bashrc

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

답변1

.profileBourne 기반 쉘(예: /bin/shbash)로 읽습니다. 그러한 쉘이 시작되지 않으면 .profile읽혀지지 않습니다. 쉘 dwm없이 nnn부팅하는 것 같습니다 st.

환경 변수가 상위 프로세스(이 경우 dwm 및 모든 선행 항목)에 설정된 경우 생성된 모든 하위 프로세스에서 상속됩니다. X를 시작한 방법에 따라 이를 수행하는 방법은 여러 가지가 있습니다. 더 많은 맥락 없이 열거하기에는 너무 많지만 아마도 in ~/.xinitrc또는 out 일 것입니다 ~/.xsession.

또 다른 방법은 PAM을 사용하는 것입니다. 기본적으로 아치에서는 $HOME/.pam_environment로그인할 때 읽고 NAME=VALUE쌍을 넣을 수 있다고 생각합니다.

관련 정보