Grałem z es w ciągu ostatnich kilku dni i (jak rc) ma dziwactwo / funkcję, że uruchamia swój skrypt startowy ( .esrc
) po zalogowaniu. Zwykłym sposobem uruchamiania kodu w każdej sesji interaktywnej jest umieszczenie tego kodu w %prompt
funkcji.
Oczywiście nie ma żadnej %prompt
funkcji, jeśli es -l
nigdy nie została uruchomiona.
Więc pytanie: jak ustawić środowisko logowania, gdy wchodzisz przez gdm lub podobny, który tylko źródłowy .profile (lub .xprofile, .xsession itp.)? Najlepsze, co wymyśliłem, to:
if [ -f "$HOME/.esrc" ]; then
eval "`es -l <<-x
sh <<<'export -p'
x`"
fi
Co wydaje się ... przerażające. Jakieś lepsze podejścia?
shell
environment-variables
profile
gdm
james.haggerty
źródło
źródło
es
to nie jest twoja powłoka logowania. Co o ustawieniealias es='es -l'
w.bashrc
?es
jest moją powłoką logowania. Przepraszam, jeśli nie wyjaśniłem tego. Ale powłoki logowania nie są uruchamiane w sesjach X przed uruchomieniem terminali, przynajmniej o ile mi wiadomo.bash
niees
. Ale kiedy otwieram nowe okno terminala, działa onobash
jako powłoka logowania.Odpowiedzi:
Ponieważ nikt nie ma prawdziwej odpowiedzi, oto mój okropny hack. Niektóre powłoki (na przykład * rxvt) mają ustawienia umożliwiające wymuszenie powłoki logowania. Tak w
.Xdefaults
, można dodać coś podobnego doCo oznacza, że wszystkie
urxvt256c-ml
uruchamiane przez ciebie terminale będą domyślnie miały powłokę logowania.Czy to w ogóle pomaga?
źródło