Execute um comando em outro terminal

Execute um comando em outro terminal

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

informação relacionada