J'ai joué avec es ces derniers jours, et il (comme rc) a la particularité / qu'il n'exécute son script de démarrage ( .esrc
) qu'à la connexion. La façon habituelle d'exécuter du code dans chaque session interactive est de mettre ce code dans la %prompt
fonction.
Bien sûr, il n'y a pas de %prompt
fonction si elle es -l
n'a jamais été exécutée.
Donc, la question: comment définir l'environnement de connexion lorsque vous entrez via gdm ou similaire, qui ne source que .profile (ou .xprofile, .xsession, etc.)? Le meilleur que j'ai trouvé est:
if [ -f "$HOME/.esrc" ]; then
eval "`es -l <<-x
sh <<<'export -p'
x`"
fi
Ce qui semble ... horrible. De meilleures approches?
shell
environment-variables
profile
gdm
james.haggerty
la source
la source
es
n'est pas votre shell de connexion. Qu'en est- il misealias es='es -l'
en.bashrc
?es
est mon shell de connexion. Désolé si je n'ai pas précisé cela. Mais les shells de connexion ne sont pas exécutés dans les sessions X avant le lancement des terminaux, du moins pour autant que je sache.bash
pases
. Mais lorsque j'ouvre une nouvelle fenêtre de terminal, elle fonctionnebash
comme un shell de connexion.Réponses:
Puisque personne n'a de vraie réponse, voici mon horrible hack. Certains shells (* rxvt par exemple) ont des paramètres qui permettent de forcer un shell de connexion. Donc, dans votre
.Xdefaults
, vous pouvez ajouter quelque chose de semblable àCe qui signifie que tous les
urxvt256c-ml
terminaux que vous lancez auront un shell de connexion par défaut.Est-ce que cela vous aide?
la source