Abra a janela Terminal do Gnome e execute 2 comandos

3

Eu tenho um script que roda em segundo plano (sem janelas de terminal ou TTY) e ocasionalmente faz alguma coisa.

Eu quero agora que ele faça outra coisa quando fizer algo e que seja para abrir uma janela do Gnome Terminal e executar 2 comandos. Na verdade, eu só preciso executar 1 comando, mas eu quero fazer a janela do terminal ficar aberta para que eu possa ver a saída do comando. O comando imprime tanto no stdout quanto no stderr e sua saída muda com o tempo, então apenas escrevê-lo em um arquivo e enviar algum tipo de notificação não funcionaria muito bem.

Eu posso fazer com que o Gnome Terminal abra uma janela e execute 1 comando:

gnome-terminal -e "sleep 10"

Eu escolhi sleep como o comando de longa duração para simplicidade. No entanto, ao adicionar outro comando, nenhuma janela de terminal é aberta:

gnome-terminal -e "echo test; sleep 10"

Qual é a solução para isso?

    
por UTF-8 24.06.2017 / 23:32

1 resposta

6

gnome-terminal trata tudo entre aspas como um comando, então para executar muitos deles consecutivamente, você precisa iniciar o interpretador (geralmente um shell) e fazer coisas dentro dele, por exemplo:

gnome-terminal -e 'sh -c "echo test; sleep 10"'

BTW, você pode querer que a janela permaneça aberta mesmo após os comandos concluírem seu trabalho, nesse caso, basta iniciar um novo shell ou substituir uma corrente por uma nova:

gnome-terminal -e 'sh -c "echo test; sleep 10; exec bash"'
    
por 25.06.2017 / 00:00