A finalidade de atribuir um nome a uma sessão de tela com -S
é para que você possa operar nessa sessão (por exemplo, com screen -r ...
), especificando seu nome.
Olhando para a página man sob a opção -r
:
-r [pid.tty.host]
-r sessionowner/[pid.tty.host]
resumes a detached screen session. No other options (except com‐ binations with -d/-D) may be specified, though an optional prefix of [pid.]tty.host may be needed to distinguish between multiple detached screen sessions. The second form is used to connect to another user's screen session which runs in multiuser mode. This indicates that screen should look for sessions in another user's directory. This requires setuid-root.
Portanto, um nome de sessão com um caractere /
é interpretado como owner/name
. (Isso pode ser documentado melhor com a opção -S
).
Você pode fazer
screen -S $USER/name
que é equivalente a:
screen -S name
Em alguns experimentos rápidos com a versão de tela 4.01.00, não encontrei nenhum outro caractere especial proibido nos nomes de sessão. Todos os itens a seguir:
screen -S 'foo bar'
screen -S 'foo"bar'
screen -S "foo'bar"
screen -S 'foo\bar'
screen -S "foo'bar^Xbaz"
funcionou corretamente para mim.
No último, o ^X
era na verdade um caractere literal Ctrl-X . screen -ls
mostra isso literalmente; Eu tive que fazer screen -ls | cat -A
para ver isso. Consegui retomar todas essas sessões especificando seus nomes:
screen -dr 'foo bar'
, etc, e o valor de $STY
em cada sessão estava correto.
(Eu não recomendo usar caracteres de controle, pois espero que sejam razões óbvias).