Risposte:
Lo schermo fornisce alcune variabili d'ambiente (dalla screenmanpage (1)):
STY Alternate socket name.
WINDOW Window number of a window (at creation time).
"Al momento della creazione" significa che se rinumerate una finestra (usando il numbercomando screen ), la shell non verrà informata della modifica e $ WINDOW sarà sempre lo stesso del primo numero di finestra.
Puoi usare qualcosa come:
PS1='\u@\h(${STY}:${WINDOW}):\w$ '
screen -xr 2466 -X windows.
Ctrl-a A?
screenè stato compilato con l' -Qopzione (query), quindi è possibile eseguire alcuni comandi, come ad esempio titlee windowsed avere la visualizzazione dei dati sullo standard output, tuttavia, senza un fine riga.
Uso sempre nomi di sessioni dello schermo precisi. Quindi posso aggiungere lo STY env var dello schermo, con l'id numerico rimosso (grazie a dimo414), su PS1. Non lo decoro con parentesi graffe o altro perché non sono sempre in una sessione. Esempio semplice:
PS1='\u@\h ${STY#[0-9]*.} \w$ '
Lo uso questo:
(`echo ${STY} | sed -e 's/[0-9]*\.//g'`:${WINDOW}:`screen -Q title`)
rimuove il numero di processo da ${STY}
include il numero della finestra (come indicato "al momento della creazione")
include il titolo della finestra (come restituito da screen -Q title)
Appunti:
screen -Qattende una sequenza di tasti di ritorno${STY#[0-9]*.}evita di dover passare attraverso sed.