Wenn ich screen starte, ändert sich meine Eingabeaufforderung. Wie verhindere ich dieses Verhalten? Beispielsweise:
$ echo $PS1
\[\e]0;\h:Prod\a\]\n\[\e[32m\]\u@\h \[\e[33m\]\w\[\e[0m\]\n\$
$ screen
$ echo $PS1
[\u@\h \W]\$
Interessanterweise funktioniert dies auf anderen Computern nicht. Bei der fraglichen Maschine handelt es sich um Redhat 4 Update 4 mit der Bildschirmversion 4.00.02 (FAU) 5-Dec-03.
linux
gnu-screen
Swoogan
quelle
quelle
Viele Distributionen überprüfen den Terminaltyp, bevor sie die Eingabeaufforderung festlegen. Ubuntu zum Beispiel enthält dieses kleine Juwel in der Standardeinstellung .bashrc:
Da screen eine eigene TERM-Variable ("screen") verwendet, ist bash der Ansicht, dass keine ausgefallene Farbaufforderung angezeigt werden kann, weshalb standardmäßig eine einfachere verwendet wird. Der Bildschirm kann natürlich die gleichen komplexen Eingabeaufforderungen wie ein normales Terminal ausführen.
Um dieses Verhalten außer Kraft zu setzen, müssen Sie am Ende der
~/.bashrc
Datei nur Ihre bevorzugten PS1-Optionen festlegen . Wenn Sie sich abenteuerlustig fühlen, suchen Sie den Test, der den Wert der TERM-Variablen überprüft, und ändern Sie ihn so, dass er zusätzlich zu "xterm-color" "screen" akzeptiert.quelle
Vielleicht ist dies eine benutzerdefinierte Variable, die in der Datei ~ / .screenrc festgelegt ist?
quelle
Hatte das gleiche Problem (keine benutzerdefinierte Eingabeaufforderung mehr auf dem Bildschirm) auf einem Computer mit
SHELL -$SHELL
und ohnesetenv PS1
screenrc und keinen speziellen Test für (dummes) Terminal in bashrc.Einstellen des verwendeten $ TERM:
In screenrc wurde meine benutzerdefinierte Eingabeaufforderung unter Screen zurückgegeben:
PS: Ein anderer Account hatte das nicht nötig, aber bashrc testet auf Dircolors und ein modernes Terminal so 1 :
Ich glaube, das funktioniert auch:
quelle