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 %prompt
Funktion einzufügen.
Natürlich gibt es keine %prompt
Funktion, wenn sie es -l
noch 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?
es
ist 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ß.
bash
nicht es
. Wenn ich jedoch ein neues Terminalfenster öffne, wird es bash
als Anmeldeshell ausgeführt.
es
ist nicht Ihre Login-Shell. Was ist Einstellungalias es='es -l'
in.bashrc
?