Antworten:
Der Bildschirm liefert einige Umgebungsvariablen (aus screen
(1) Manpage):
STY Alternate socket name.
WINDOW Window number of a window (at creation time).
"Zur Erstellungszeit" bedeutet, dass, wenn Sie ein Fenster neu nummerieren (mit dem number
Befehl des Bildschirms ), die Shell nicht über die Änderung informiert wird und $ WINDOW immer noch mit der ersten Fensternummer identisch ist.
Sie könnten etwas verwenden wie:
PS1='\u@\h(${STY}:${WINDOW}):\w$ '
screen -xr 2466 -X windows
.
Ctrl-a A
?
screen
mit der -Q
Option (Abfrage) kompiliert wurde , können Sie einige Befehle ausführen, z. B. title
und, windows
und die Datenanzeige muss jedoch ohne nachgestellten Zeilenumbruch stdout angezeigt werden.
Ich verwende immer genaue Namen von Bildschirmsitzungen. Dann kann ich PS1 die STY env var des Bildschirms hinzufügen, bei der die numerische ID entfernt wurde (danke dimo414). Ich dekoriere es nicht mit geschweiften Klammern oder so, weil ich nicht immer in einer Sitzung bin. Einfaches Beispiel:
PS1='\u@\h ${STY#[0-9]*.} \w$ '
Ich benutze das:
(`echo ${STY} | sed -e 's/[0-9]*\.//g'`:${WINDOW}:`screen -Q title`)
Entfernt die Prozessnummer aus ${STY}
enthält die Fensternummer (wie "zur Erstellungszeit" erwähnt)
enthält den Fenstertitel (wie von zurückgegeben screen -Q title
)
Anmerkungen:
screen -Q
Wenn es zum ersten Mal ausgeführt wird, wartet es auf einen Tastendruck${STY#[0-9]*.}
die Verwendung wird vermieden, dass ein Rohr durchgeleitet werden muss sed
.