在另一个终端执行命令

在另一个终端执行命令

我正在寻找一种从一个 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

相关内容