Réponses:
L'écran fournit certaines variables d'environnement (à partir de la screen
page de manuel (1)):
STY Alternate socket name.
WINDOW Window number of a window (at creation time).
Le "au moment de la création" signifie que si vous renumérotez une fenêtre (en utilisant la number
commande de l'écran ), le shell ne sera pas informé de la modification et $ WINDOW sera toujours le même que le premier numéro de fenêtre.
Vous pouvez utiliser quelque chose comme:
PS1='\u@\h(${STY}:${WINDOW}):\w$ '
screen -xr 2466 -X windows
.
Ctrl-a A
?
screen
a été compilé avec l' -Q
option (requête), vous pouvez exécuter certaines commandes, telles que title
et windows
et afficher les données sur stdout, cependant, sans retour à la ligne.
J'utilise toujours des noms de session d'écran précis. Ensuite, je peux ajouter la var STY env de l'écran, avec l'ID numérique supprimé (merci dimo414), à PS1. Je ne le décore pas avec des accolades ou quoi que ce soit parce que je ne suis pas toujours en session. Exemple simple:
PS1='\u@\h ${STY#[0-9]*.} \w$ '
J'utilise ceci:
(`echo ${STY} | sed -e 's/[0-9]*\.//g'`:${WINDOW}:`screen -Q title`)
supprime le numéro de processus ${STY}
inclus le numéro de fenêtre (comme mentionné "au moment de la création")
inclut le titre de la fenêtre (tel que renvoyé par screen -Q title
)
Remarques:
screen -Q
attend une touche de retour${STY#[0-9]*.}
évite d'avoir à passer à travers sed
.