es 환경을 어떻게 설정합니까?


10

나는 지난 며칠 동안 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

끔찍한 것 같습니다. 더 나은 접근 방법이 있습니까?


es귀하의 로그인 쉘이 아닌 것을 수집합니다 . 의 설정 alias es='es -l'.bashrc어떻습니까?
CJM

es내 로그인 쉘입니다. 내가 그것을 명확하게하지 않으면 죄송합니다. 그러나 적어도 내가 아는 한 터미널을 시작하기 전에 로그인 셸이 X 세션에서 실행되지 않습니다.
james.haggerty

사용 bash하지 않습니다 es. 그러나 새 터미널 창을 열면 bash로그인 쉘로 실행 됩니다.
CJM

최소한 대부분의 X 터미널에서이 옵션은 기본적으로 비활성화되어있는 옵션입니다 (IMO 여야 함). 따라서 그렇습니다. 해결 방법이지만 한 번 실행할 수있을 때이 물건을 여러 번 실행해야 할 이유가 없습니다.
james.haggerty

흠, 당신의 편집에 동의하지 않습니다, 질. 왜 이것이 es에만 적용된다고 생각합니까? (* csh 또는 rc 또는 ...?가 아닌) 왜 gdm과 lightdm이 환경을 제어하는 ​​것이기 때문에 제거합니까?
james.haggerty

답변:


1

아무도 진정한 답을 찾을 수 없으므로 여기 끔찍한 해킹이 있습니다. 일부 쉘 (예 : * rxvt)에는 로그인 쉘을 강제 실행할 수있는 설정이 있습니다. 따라서에서에서 .Xdefaults비슷한 것을 추가 할 수 있습니다.

urxvt256c-ml:loginShell: true

즉, urxvt256c-ml시작 하는 모든 터미널에는 기본적으로 로그인 쉘이 있습니다.

그게 전혀 도움이 되나요?


글쎄, 성가신 사람 (위의 주석 참조?), 나는 이미 이것에 대해 알고 있다고 말할 것입니다. 이 코드 나 약간 방해가되는 코드가 더 나은 옵션인지는 토스 업입니다. 하나는 개념적 우아함이 부족합니다 (단일 실제 로그인으로 100 초를 만들 때 모든 터미널에 로그인한다고 주장하고 있습니까?), 다른 하나는 구현 우아함이 부족합니다 (그러나 실제로 로그인 환경 설정 해야한다고 생각합니다 ).
james.haggerty

아, 지금 무슨 말인지 알 겠어. 개인적으로 터미널을 X11 환경이 아닌 로그인 단위로 간주하므로 3 개의 터미널이 열려 있으면 3 번 로그인하는 것이 좋습니다. 나는 다른 사람들에게 유용한 경우를 대비하여 여기에 답을 남길 것이다. 얼마나 많은 다운 투표가 유치되는지 보자. ^ _ ~
Sardathrion-남용에 대하여
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.