Respostas:
A tela fornece algumas variáveis de ambiente (da screen
(1) página de manual):
STY Alternate socket name.
WINDOW Window number of a window (at creation time).
O "no momento da criação" significa que, se você renumerar uma janela (usando o number
comando da tela ), o shell não será informado sobre a alteração e o $ WINDOW ainda será o mesmo que o primeiro número da janela.
Você pode usar algo como:
PS1='\u@\h(${STY}:${WINDOW}):\w$ '
screen -xr 2466 -X windows
.
Ctrl-a A
?
screen
foi compilado com a -Q
opção (query), então você pode executar alguns comandos, como title
e windows
e ter a visualização de dados para stdout, no entanto, sem uma nova linha final.
Eu sempre uso nomes de sessão de tela precisos. Então eu posso adicionar o var STY env da tela, com o ID numérico retirado (obrigado dimo414), ao PS1. Eu não decorei com aparelho encaracolado ou qualquer coisa, porque nem sempre estou em uma sessão. Exemplo simples:
PS1='\u@\h ${STY#[0-9]*.} \w$ '
Eu uso isso:
(`echo ${STY} | sed -e 's/[0-9]*\.//g'`:${WINDOW}:`screen -Q title`)
remove o número do processo de ${STY}
inclui o número da janela (como mencionado "no momento da criação")
inclui o título da janela (como retornado screen -Q title
)
notas:
screen -Q
aguarda o pressionamento de tecla de retorno${STY#[0-9]*.}
evita a necessidade de canalizar sed
.