Ich habe in den letzten Tagen mit es gespielt und es hat (wie rc) die Eigenart / Funktion, dass es sein Startskript ( .esrc) nur beim Anmelden ausführt. Die übliche Methode zum Ausführen von Code in jeder interaktiven Sitzung besteht darin, diesen Code in die %promptFunktion einzufügen.
Natürlich gibt es keine %promptFunktion, wenn sie es -lnoch nie ausgeführt wurde.
Die Frage lautet also: Wie stellen Sie die Anmeldeumgebung ein, wenn Sie über gdm oder ähnliches eintreten, das nur .profile (oder .xprofile, .xsession usw.) enthält? Das Beste, was ich mir ausgedacht habe, ist:
if [ -f "$HOME/.esrc" ]; then
eval "`es -l <<-x
sh <<<'export -p'
x`"
fi
Welches scheint ... schrecklich. Irgendwelche besseren Ansätze?
esist meine Login-Shell. Entschuldigung, wenn ich das nicht klargestellt habe. Aber Login-Shells werden nicht in X-Sitzungen ausgeführt, bevor Terminals gestartet werden, zumindest soweit ich weiß.
bashnicht es. Wenn ich jedoch ein neues Terminalfenster öffne, wird es bashals Anmeldeshell ausgeführt.
esist nicht Ihre Login-Shell. Was ist Einstellungalias es='es -l'in.bashrc?