Linux gnu screen - executa comandos imediatamente quando a tela é iniciada?

3

No meu arquivo .screenrc, tenho esta linha para abrir uma janela da tela:

screen -t "normal"

E esta linha para abrir outra janela e executar o topo:

screen -t "top" top

Isso funciona muito bem, então eu queria executar imediatamente df && ls -alhem uma terceira janela, então coloquei esta linha no .screenrc:

screen -t "df" df && ls -alh

A janela df nunca aparece, então eu pensei que o && pudesse ser a causa do problema e tentei com apenas df.

screen -t "df" df

A janela df ainda não aparece.

Pergunta: Como posso executar um comando seguido por outro na mesma janela da tela via screenrc? Eu gostaria que ele se comportasse exatamente como no bash. Obrigado por qualquer conselho.

user1200129
fonte

Respostas:

3

Provavelmente aparece, mas desaparece após a execução.

Tente o seguinte:

screen -t "df" bash -c 'df && sleep 50'

Isso mostrará a saída do dfcomando por 50segundos.

Para ter uma dfsaída útil , recomendo que você use watch:

screen -t "df" watch -n 10 df

Isso será executado a dfcada 10 segundos, para que você tenha o status real do seu espaço livre em disco nesse terminal.

KARASZI István
fonte
11
Isso funciona. Como você evita que a janela desapareça depois que os comandos são executados?
precisa saber é o seguinte
@ 01100110 Eu atualizei minha resposta
KARASZI István
Isso funciona, mas quando você se reconecta à tela e para o loop df pressionando ctrl-c, a tela termina. Alguma maneira de iniciar a tela para que a tela permaneça ativa, mesmo que o programa seja iniciado dentro de paradas?
576i 28/01