我正在尝试自动化一个场景,其中我打开了一个终端窗口,其中打开了多个选项卡。我能够在选项卡之间进行迁移,但我的问题是如何在另一个选项卡中运行我的perl脚本时将控制权传递给另一个终端选项卡。 示例:我打开一个终端,Tab1,Tab2,Tab3,Tab4在同一个终端打开,我在Tab3中运行perl脚本,我想将一些命令传递给Tab1。你能告诉我怎么办?
我使用GUI工具在标签X11 :: GUITest之间切换,并使用键盘快捷键在标签之间切换,欢迎任何替代建议,我的最终目标是将控制传递到另一个标签。
答案 0 :(得分:1)
要理解的主要是每个选项卡都有一个不同的终端运行实例,更重要的是一个不同的shell实例(我想我会提到它,因为它似乎没有从你选择的单词中清楚地看到它)。所以"传递控制"在这种情况下,最有可能需要进程间通信(IPC)。
现在开辟了一系列可能性。例如,您可以在目标shell(选项卡)中运行python / perl脚本,以便在unix套接字上侦听文本形式的命令,然后脚本可以执行该命令。在Python中,您有模块子进程(call,Popen)和os(exec *)。如果你必须将控制权转回给调用过程,那么我建议你使用子过程,因为你也可以发回回代码。
在标签之间切换是一种不同的操作,对调用/被调用的进程没有任何影响。你已经提到过你打算如何做到这一点。