He estado jugando con es en los últimos días, y (como rc) tiene la peculiaridad / característica de que solo ejecuta su script de inicio ( .esrc
) al iniciar sesión. La forma habitual de ejecutar código en cada sesión interactiva es poner ese código en la %prompt
función.
Por supuesto, no hay %prompt
función si es -l
nunca se ha ejecutado.
Entonces, la pregunta: ¿cómo configura el entorno de inicio de sesión cuando ingresa a través de gdm o similar, que solo genera .profile (o .xprofile, .xsession, etc.)? Lo mejor que se me ocurrió es:
if [ -f "$HOME/.esrc" ]; then
eval "`es -l <<-x
sh <<<'export -p'
x`"
fi
Lo que parece ... horrible. ¿Algún mejor enfoque?
shell
environment-variables
profile
gdm
james.haggerty
fuente
fuente
es
no es su shell de inicio de sesión. ¿Qué hay de ajustealias es='es -l'
en.bashrc
?es
es mi shell de inicio de sesión. Lo siento si no lo dejé claro. Pero los shells de inicio de sesión no se ejecutan en sesiones X antes de que se inicien los terminales, al menos hasta donde yo sé.bash
, noes
. Pero cuando abro una nueva ventana de terminal, se ejecutabash
como un shell de inicio de sesión.Respuestas:
Como nadie tiene una respuesta real, aquí está mi horrible truco. Algunos shells (* rxvt, por ejemplo) tienen configuraciones que permiten forzar un shell de inicio de sesión. Entonces, en su
.Xdefaults
, puede agregar algo similar aLo que significa que todas las
urxvt256c-ml
terminales que inicies tendrán un shell de inicio de sesión de forma predeterminada.¿Eso ayuda en absoluto?
fuente