![Выполнить команду в другом терминале](https://rvso.com/image/109209/%D0%92%D1%8B%D0%BF%D0%BE%D0%BB%D0%BD%D0%B8%D1%82%D1%8C%20%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D1%83%20%D0%B2%20%D0%B4%D1%80%D1%83%D0%B3%D0%BE%D0%BC%20%D1%82%D0%B5%D1%80%D0%BC%D0%B8%D0%BD%D0%B0%D0%BB%D0%B5.png)
Я ищу способ запускать команды из одного скрипта 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