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 numberpolecenia 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?
screenzostało skompilowane z -Qopcją (zapytanie), możesz uruchamiać niektóre polecenia, takie jak titlei, windowsi 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 -Qczeka na naciśnięcie klawisza powrotu${STY#[0-9]*.}pozwala uniknąć konieczności przepuszczania rur sed.