Odpowiedzi:
Screen dostarcza niektóre zmienne środowiskowe (z screen
(1) strony):
STY Alternate socket name.
WINDOW Window number of a window (at creation time).
„W czasie tworzenia” oznacza, że jeśli zmienisz numerację okna (używając number
polecenia screen ), powłoka nie zostanie poinformowana o zmianie, a $ WINDOW pozostanie taki sam jak numer pierwszego okna.
Możesz użyć czegoś takiego jak:
PS1='\u@\h(${STY}:${WINDOW}):\w$ '
screen -xr 2466 -X windows
.
Ctrl-a A
?
screen
zostało skompilowane z -Q
opcją (zapytanie), możesz uruchamiać niektóre polecenia, takie jak title
i, windows
i wyświetlać dane na standardowe wyjście, jednak bez końcowego znaku nowej linii.
Zawsze używam dokładnych nazw sesji ekranowych. Następnie mogę dodać ekran STY env var z usuniętym identyfikatorem numerycznym (dzięki dimo414) do PS1. Nie ozdabiam go nawiasami klamrowymi ani niczym innym, ponieważ nie zawsze jestem na sesji. Prosty przykład:
PS1='\u@\h ${STY#[0-9]*.} \w$ '
Używam tego:
(`echo ${STY} | sed -e 's/[0-9]*\.//g'`:${WINDOW}:`screen -Q title`)
usuwa numer procesu z ${STY}
dołączonego numeru okna (jak wspomniano „w czasie tworzenia”)
zawiera tytuł okna (zwrócony z screen -Q title
)
uwagi:
screen -Q
czeka na naciśnięcie klawisza powrotu${STY#[0-9]*.}
pozwala uniknąć konieczności przepuszczania rur sed
.