Enviar comandos para tela separada não funciona

Enviar comandos para tela separada não funciona

Estou tentando criar uma tela separada e enviar um comando, mas isso não parece estar funcionando.

Se eu inserir os seguintes comandos:

$ screen -ls
No Sockets found in /var/run/screen/S-ec2-user.

$ screen -dmS myscreen
$ screen -ls
There is a screen on:
    9175.myscreen   (Detached)
1 Socket in /var/run/screen/S-ec2-user.

$ screen -S myscreen -X ls

Depois anexei na tela para ver se o comando foi executado:

$ screen -r myscreen

Tudo que recebo é uma linha de comando em branco, como se nada tivesse acontecido.

Alguém sabe por que isso está falhando e quais comandos posso usar para realmente executar o comando dentro da tela?

Nota: Quero ficar separado da tela, se possível, e apenas enviar comandos de fora para a tela. Isso ocorre porque meu plano é executar várias telas, usando meios automatizados (por exemplo, script bash).

Responder1

Finalmente consegui que isso funcionasse.

Olhando paraalguns exemplos de código de screenuso, parece que o parâmetro -X espera a palavra: stuffantes do comando real, e também o comando deve ser colocado entre aspas duplas ("xyz").

Além disso, para executar o comando, o Enterpressionamento de tecla deve ser enviado junto com ele. Indo emboraeste artigo sobre inserção de caracteres especiais, consegui inserir o pressionamento de tecla pressionando Ctrl+ V, Enter.

A linha de comando ficou assim:

$ screen -S myscreen -X stuff 'ls^M'

informação relacionada