O que significa 'stuff' no exemplo em resposta de Como executar um programa em uma tela, redirecionar toda a saída para um arquivo e desanexar , porque o comando está depois na área $''.
screen -S workspace -X stuff $'ps aux > output-x\n'
Como executar um programa em uma tela, redirecionar toda a saída para um arquivo e desanexar
De acordo com o comentário :
Isso parece funcionar apenas se a sessão foi anexada em algum momento, ou seja, na criação. Além disso, como ele envia caracteres, o envio da nova linha é necessário para executar o comando.
Para Linux, as etapas que funcionaram para mim:
screen -S some_session_name
screen -S some_session_name -X stuff 'command'$(echo -ne '\015')
Eu recebi as instruções deste post "Terminal / Life": Sending Commands into a Screen Session .
Do manual :
A sessão definitivamente não precisa ser anexada nunca.
Vamos decompô-lo:
screen -dmS workspace
cria uma nova tela que já está desconectada.screen -S workspace -X [command]
enviará [command] para a sessão de tela chamada workspace .CTRL+A
,:
quando conectado a uma sessão de tela normalmente.detach
ousessionname myNewName
.stuff
- que apenas "cola texto" em sua sessão.stuff
está esperando uma string como parâmetro... então, se você enviarstuff "hello"
e reconectar à sua sessão de tela: você verá a palavrahello
digitada com o cursor piscando depois dela...screen
para executar um texto que você "colado" , colocando um caractere de retorno de linha no final do seu texto (como\n
ou^M
)."hello"
para"hello^M"
seu comando completo, ficaria assim:screen -S workspace -X stuff "hello^M"
... e agora, quando você se reconectar à tela, verá que dizCommand 'hellohello' not found.
.hello
pelo que queremos executar!Exemplo: