Выполнить команду в другом терминале

Выполнить команду в другом терминале

Я ищу способ запускать команды из одного скрипта bash на двух разных терминалах.

Я знаю способ сделать это вручную, набрав «tty» в одном терминале, а затем перенаправив команды с другого терминала с выводом «tty».

Но я хотел бы сделать это автоматически с помощью скрипта, который может сохранять в переменной вывод "tty". По сути, я хочу запустить скрипт в терминале, который запускает программу в другой и выводить сообщения мониторинга, чтобы следить за ее активностью.

Я пытался :

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

или даже:

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

Но ни один из них не может сохранить вывод "tty" в моей переменной. Чего я не понимаю, потому что это работает, если я ввожу их вручную один за другим.

Не могли бы вы объяснить мне, что не так с моим методом? Если у вас есть какие-либо предложения или другие методы, которые вы можете предложить, я буду рад узнать что-то новое.

решение1

Благодаря вашим подсказкам я нашел ответ на свой вопрос. Вот пример, который, я надеюсь, поможет другим в моей ситуации:

Я использовал "tmux" для разделения окна терминала. Следующий скрипт позволяет запустить скрипт python в правой панели окна и скрипт bash в левой. Команда "send-key" позволяет отправлять команды в определенную панель. Чтобы иметь возможность использовать переменные в каждой панели, вы можете объявить их с помощью "export" в начале вашего скрипта.

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

Связанный контент