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.

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.


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.