gnu screen automation

4

Eu gostaria de lançar a tela GNU, algum comando shell nela, e então abrir novas janelas de tela com comando (s) diferente (s) - tudo isso automaticamente, a partir de um script. é possível?

UPDATE

as janelas de tela não devem ser fechadas após a execução dos comandos, eu só quero ter a sessão de tela preservada (e desanexada)

    
por mykhal 12.10.2010 / 06:02

1 resposta

5

Você pode colocar seus comandos em um arquivo, por exemplo, myscreenrc , assim:

screen command1
screen command2
screen command3

e execute screen com a opção -c seguida do nome desse arquivo, por exemplo,

screen -c myscreenrc

UPDATE

em resposta à pergunta atualizada. Os comandos que usei para testes foram screen vim foo e screen vim bar , então não vi o problema de fechamento da tela. O seguinte resolve o problema de fechamento de tela, mas parece um pouco complicado.

screen bash -c 'ls foo; exec bash -i'
screen bash -c 'ls bar; exec bash -i'

ls foi apenas um comando conveniente para testar este problema.

UPDATE # 2

Outra abordagem seria iniciar o comando a partir do arquivo rc do shell e não do arquivo rc da tela. Requer outro arquivo para cada comando, no entanto. Por exemplo, para executar top em uma janela screen de modo que sair de top retorne você a um prompt bash nessa mesma janela, crie um arquivo, chame-o de runtop , que contém o seguinte: / p>

. ~/.bashrc
top

Em seguida, coloque esta linha no arquivo que estamos chamando de screenrc :

screen bash --rcfile ~/runtop -i

e inicie screen como

screen -c screenrc
    
por 12.10.2010 / 08:57