![在另一個終端機執行命令](https://rvso.com/image/109209/%E5%9C%A8%E5%8F%A6%E4%B8%80%E5%80%8B%E7%B5%82%E7%AB%AF%E6%A9%9F%E5%9F%B7%E8%A1%8C%E5%91%BD%E4%BB%A4.png)
我正在尋找一種從一個 bash 腳本運行命令到 2 個不同終端的方法。
我知道一種手動執行此操作的方法,方法是在一個終端中鍵入“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