Como iniciar um shell do gnome e executar vários comandos a partir de um script

0

Estou tentando escrever um script que inicie um terminal Gnome e execute vários comandos. Ele é usado para registrar dados seriais por meio de um USB e meu objetivo final é produzir um script que abra várias portas COM em um shell diferente. Todos os shells devem ser executados:

sudo script /logs/deviceX.log
sudo picocom /dev/ttyUSB0 -b 115200 -p o | ts "%Y-%b-%d %H:%M:%S10"

e deixe o shell em execução. Eu verifiquei que os comandos funcionam bem quando inseridos diretamente em um terminal, então eu tentei criar um script openPort com os 2 comandos e usei

gnome-terminal -x bash -c "./openPort; exec bash"

mas o terminal só executa o primeiro comando e não o segundo.

Eu tentei criar um script separado para cada comando e usei

gnome-terminal -x bash -c "./openPort1; ./openPort2; exec bash"

mas ainda obtenho o mesmo resultado.

É simplesmente um problema de sintaxe ou estou fazendo algo completamente errado?

    
por pavel 18.07.2017 / 15:51

1 resposta

1

O lançamento do gnome-terminal usando -e em vez de -x deve funcionar. No seu caso:

gnome-terminal -e "./openPort"

Se você quiser impedir que a janela do terminal feche, é necessário certificar-se de que o script não saia (por exemplo, usando sleep ou adicionando um prompt "pressione para qualquer tecla" no final etc.). ). Se você quiser um shell interativo após a conclusão do seu script, adicionar bash -i no final deve funcionar.

    
por 19.07.2017 / 00:22