
Eu tenho um script que está executando alguns (mais de 15) aplicativos como:
cd mypath
sleep 1
gnome-terminal -t App1 --tab -e "./App1"
sleep 1
gnome-terminal -t App2 --tab -e "./App2"
..
..
sleep 1
gnome-terminal -t App15 --tab -e "./App15"
Como você pode notar, isso iniciará aplicativos em 15 terminais diferentes.
Agora o que acontece é que quando eu mato algum ./AppX
por Ctrl+ C, por qualquer motivo, ele encerra o programa e também sai desse terminal.
O que eu quero é que quando eu pressiono Ctrl+ Cele deve apenas encerrar o ./AppX
, mas o terminal ainda permanece aberto, isso porque quando eu quiser iniciá-lo AppX
novamente devo pressionar apenas a tecla Seta para Cima e Enter.
EDITAR::
Tenho a resposta::veja a resposta aceita em askubuntu.com.
Outra questão é: Como executo mais de um comando como segue:
gnome-terminal -e "sleep 1; AppX"
que NÃO está funcionando, tentei vários outros métodos (&, &&, |), mas todos falharam.
Responder1
O seguinte comando abrirá um novo terminal com 15 guias no terminal multi-gnome:
cd mypath
multi-gnome-terminal \
--add-tab -tname App1 --tcommand "./App1" \
--add-tab -tname App2 --tcommand "./App2" \
...
--add-tab -tname App15 --tcommand "./App15" \
Se você realmente precisa desses sonos, pode incorporá-los:
cd mypath
multi-gnome-terminal \
--add-tab -tname App1 --tcommand "sleep 1; ./App1" \
--add-tab -tname App2 --tcommand "sleep 2; ./App2" \
...
--add-tab -tname App15 --tcommand "sleep 15; ./App15" \
E se precisar alterar dinamicamente a contagem/lista de comandos que você está prestes a iniciar, você pode usar o seguinte:
cd mypath
cmd=(multi-gnome-terminal)
cmd=("${cmd[@]}" --add-tab -tname App1 --tcommand "sleep 1; ./App1")
cmd=("${cmd[@]}" --add-tab -tname App2 --tcommand "sleep 2; ./App2")
...
cmd=("${cmd[@]}" --add-tab -tname App15 --tcommand "sleep 15; ./App15")
"${cmd[@]}"