Acho que o tempo mostra que a resposta a essa pergunta é simplesmente: não, não é possível.
Eu tenho algumas telas separadas em execução. Agora gostaria de ver o estado atual deles para cada um deles. Currenlty, eu faço
$ screen -r
# look at the cryptic numbers
$ screen -r <paste number one>
# look at output
<Ctrl-A> D
$ screen -r
# look at the cryptic numbers to find the next one
$ screen -r <paste number two>
# look at output
<Ctrl-A> D
$ screen -r
# look at the cryptic numbers to find the next one
# and so on
$ screen -r <paste number three>
# look at output
Existe um único comando que me permite fazer isso?
Você quer o equivalente do comando hardcopy
? Você pode usar a opção -X
.
$ screen -p 9 -X hardcopy
$ file hardcopy.9
hardcopy.9: ASCII text
Você passaria por cada janela. Infelizmente, você não pode obter uma lista de janelas sem usar algo como expect
, já que a saída é emitida para a exibição de screen
, não stdout. Mas para um comando como hardcopy
, se não houver janela, nenhum arquivo será gerado.
Se você sabe que você quer isso de antemão, você pode log
cada quando a janela é criada ( screen -L longrunningprogram
comando interno). Então você pode ver a saída fora da tela. Você também pode ativar isso depois que o programa iniciar dentro de screen
ou usando a opção -X
acima.
Editar (do comentário de Stephene):
$ screen -X hardcopydir /tmp; screen -X at \# hardcopy
$ ls /tmp/hardcopy.*
hardcopy.0 hardcopy.2 hardcopy.4 hardcopy.6 hardcopy.8
hardcopy.1 hardcopy.3 hardcopy.5 hardcopy.7
Tags gnu-screen