![Execute um comando em outro terminal](https://rvso.com/image/109209/Execute%20um%20comando%20em%20outro%20terminal.png)
Estou procurando uma maneira de executar comandos de um script bash para dois terminais diferentes.
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 possa salvar em uma variável a saída de "tty". Basicamente quero lançar um script em um terminal que lança um programa em outro e imprimir mensagens de monitoramento para acompanhar sua atividade.
Tentei :
gnome-terminal -e "bash -c 'term2=$(tty)' ;exec bash'"
ou 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 digitá-los manualmente, um por um.
Você poderia me explicar o que há de errado com meu método? Se você tiver alguma sugestão ou outros métodos a propor, ficarei feliz em aprender coisas novas.
Responder1
Graças às suas dicas, encontrei a resposta para minha pergunta. Aqui está um exemplo que espero que possa ajudar outras pessoas na minha situação:
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 painel 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