es 환경을 설정하는 방법은 무엇입니까?

es 환경을 설정하는 방법은 무엇입니까?

나는 놀고 있었다영어최근에는 rc와 마찬가지로 .esrc로그인 시에만 시작 스크립트를 실행하는 특이한/기능이 있습니다( ). 각 대화형 세션에서 코드를 실행하는 일반적인 방법은 코드를 %prompt함수에 넣는 것입니다.

물론, 한 번도 실행된 적이 없다면 기능이 없습니다 %prompt.es -l

따라서 질문은: gdm 또는 유사한 소스 전용 .profile(또는 .xprofile, .xsession 등)을 통해 로그인할 때 로그인 환경을 어떻게 설정합니까? 내가 생각 해낸 최고는 다음과 같습니다.

if [ -f "$HOME/.esrc" ]; then
    eval "`es -l <<-x
        sh <<<'export -p'
    x`"
fi

이건...끔찍해 보이는군요. 더 좋은 방법이 있나요?

답변1

아무도 실제 답을 갖고 있지 않기 때문에 여기 제 끔찍한 꿀팁이 있습니다. 일부 셸(예: *rxvt)에는 로그인 셸을 강제 실행할 수 있는 설정이 있습니다. 그래서 당신은 .Xdefaults다음과 같은 것을 추가할 수 있습니다

urxvt256c-ml:loginShell: true

이는 urxvt256c-ml실행하는 모든 터미널에 기본적으로 로그인 셸이 있음을 의미합니다.

도움이 되었나요?

답변2

수년이 지난 후 내 자신의 질문에 답하면서 이제 gnome-session은 로그인 셸에서 환경 변수를 추출하고 이에 대해 dbus에 알리는 마법을 수행하는 것처럼 보이지만 .profile은 실행되지 않습니다.

https://gitlab.gnome.org/GNOME/gnome-session/-/blob/ef9f3039bdb48e008cd59e46aac442811bc40f09/gnome-session/gsm-util.c#L545

안타깝게도 다음과 같은 이유로 긴 문자열을 포함하는 마음에 들지 않는 항목(2023년) 내보내기도 거부합니다.

https://gitlab.gnome.org/GNOME/glib/-/issues/2824

관련 정보