Executa um comando em outro terminal

3

Estou procurando uma maneira de executar comandos de um script bash para dois terminais diferentes.

Eu conheço uma maneira de fazer isso manualmente digitando "tty" em um terminal e redirecionando os comandos do outro terminal com a saída "tty".

Mas eu gostaria de fazer isso automaticamente com um script que pode salvar em uma variável a saída de "tty". Basicamente eu quero lançar um script em um terminal que inicia um programa em outro e imprima mensagens de monitoramento para acompanhar sua atividade.

Eu tentei:

gnome-terminal -e "bash -c 'term2=$(tty)' ;exec bash'"

ou até mesmo:

gnome-terminal -e "bash -c 'tty > term2.txt;my_var='cat term2.txt' ;exec bash'"

Mas nenhum deles é capaz de salvar a saída de "tty" na minha variável. O que não entendo porque funciona se eu os digitar manualmente, um por um.

Você poderia me explicar o que há de errado com o meu método? Se você tiver alguma sugestão ou outros métodos para propor, ficarei feliz em aprender coisas novas.

    
por Michael Homer 08.04.2017 / 00:42

1 resposta

1

Graças às suas dicas, encontrei a resposta para minha pergunta. Aqui está um exemplo que espero poder ajudar os outros na minha situação:

Eu usei "tmux" para dividir uma janela de terminal. O script a seguir permite iniciar um script python no painel direito da janela e um script bash no lado esquerdo. O comando "send-key" permite enviar comandos para um painel específico. Para poder usar suas variáveis em cada painel, você pode declará-las com "export" no início do seu script.

export python_script=test.py export bash_script=test_bash.sh tmux new-session -d tmux split-window -h tmux send-keys -t 1 'python $python_script' 'C-m' tmux send-keys -t 0 'bash $bash_script' 'C-m' tmux attach-session

    
por 10.04.2017 / 02:09