Acessando telas de e para trás através do script bash

2

Eu criei vários screen para executar o mesmo código com parâmetros diferentes. A maneira que estou fazendo agora é anexar manualmente uma tela, passar o comando e argumentos e, em seguida, Ctrl a+d para desanexar essa tela. Então, novamente, anexando uma tela diferente e, novamente, passando os argumentos e se destacando daquela tela. É possível escrever um script bash para fazer todo esse processo automaticamente?

    
por MD Abid Hasan 29.05.2017 / 04:30

1 resposta

3

A criação de várias sessões screen provavelmente não é a melhor opção. O Screen suporta a noção de colocar várias janelas em uma única sessão, o que torna as coleções mais fáceis de serem manipuladas. Há ^A 1 , ^A 2 etc. ^A ' e ^A " para alternar entre as janelas e ^A w para listá-las.

Indo com uma sessão de tela, você pode iniciar uma sessão e, em seguida, os comandos dentro de algo como:

#!/bin/sh
screen -d -m -S test
screen -S test -X screen -t title somecommand someargs...
screen -S test -X screen -t othertitle somecommand otherargs

screen -d -m inicia uma nova sessão desanexada, -S fornece um nome à sessão ou refere-se a uma pelo nome. -X envia o restante da linha de comando como um comando para uma sessão em execução, e o comando screen (dentro de screen ) abre uma nova janela e executa um comando lá. -t pode ser usado com screen para dar à janela um título.

Você também pode colocar os comandos para screen em um arquivo e usar :source para executar o arquivo (semelhante a .screenrc ). Veja o manual para alguns exemplos e uma referência sobre os comandos screen supports. (Há um caminhão).

    
por 29.05.2017 / 10:05