Salve vários terminais como variáveis

0

Eu tenho que abrir várias janelas xterm e salvá-las mais tarde para executar comandos diferentes em cada um deles, mantendo-os vivos.
Um exemplo (não correto em tudo) seria:

term1= xterm -hold -title "term1"
term2= xterm -hold -title "term2"
term3= xterm -hold -title "term3"

Calcule os mesmos comandos para todos eles:

for i in term1 term2 term3
do 
  $i -e "cd somewhere; source something"
done

execute comandos diferentes para alguns deles:

$term1 -e "cd somewhere else; ./..."
$term2 -e "do other thing"

Eu tenho pouca experiência em scripts de shell, como você pode perceber, se alguém pudesse me ajudar eu ficaria muito feliz.

EDIT: adicione exemplo em resposta a @dessert

Aviso de isenção de responsabilidade: atualmente estou trabalhando no ambiente ROS.

O script deve abrir quatro janelas de terminal (xterm, terminator, terminal padrão); três deles precisam criar um script bash na mesma pasta e, em seguida, fazer a conversão para outro, desses dois devem executar vários comandos (é necessário iniciar um arquivo launch_file enquanto outro precisa executar um script). O quarto deve fazer o cd para uma pasta diferente, onde ele tem que criar um .bash e depois lançar outro launch_file. Seria ainda melhor se o quarto pudesse esperar x segundos antes do lançamento.

    
por nicofirst1 30.10.2017 / 16:58

1 resposta

1

Use funções! A vantagem desse método é que você pode adicionar outros parâmetros posicionais opcionais à chamada de função quando executá-lo.

term1(){
    xterm -hold -title "term1" "$@"
}

Coloque isso no seu arquivo ~/.bashrc e execute source ~/.bashrc . Mesma ideia para outros comandos.

Para manter o terminal "vivo", você precisa gerar shell no final, ou seja,

term1 -e "cd place1; command 2;bash"

O Terminal em si é apenas uma janela, e ele não tem shell sozinho para você interagir, então, a menos que você crie um - você não terá shell interativo.

    
por Sergiy Kolodyazhnyy 30.10.2017 / 20:53