【问题标题】:How do i pass on control on to different terminal tab using perl?如何使用 perl 将控制权传递给不同的终端选项卡?
【发布时间】:2014-12-01 10:39:48
【问题描述】:

我正在尝试自动化一个场景,在该场景中,我打开了一个终端窗口,其中打开了多个选项卡。我能够在选项卡之间迁移,但我的问题是如何在另一个选项卡中运行我的 perl 脚本时将控制权传递给另一个终端选项卡。 示例: 我打开了一个终端,Tab1、Tab2、Tab3、Tab4 在同一个终端中打开,我在 Tab3 中运行 perl 脚本,我想将一些命令传递到 Tab1。你能告诉我我该怎么做吗?

我使用 GUI 工具在选项卡之间切换 X11::GUITest 并使用键盘快捷键在选项卡之间切换,欢迎任何替代建议,我的最终目标是将控制权传递给不同的选项卡。

【问题讨论】:

    标签: python perl ubuntu automation perl-module


    【解决方案1】:

    要理解的主要事情是每个选项卡都有一个不同的终端运行实例,更重要的是一个不同的 shell 实例(只是想我会提到,因为你似乎并没有从你的选择中清楚地知道这一点)。因此,在这种情况下“传递控制权”很可能需要进程间通信 (IPC)。

    现在,这开辟了一系列可能性。例如,您可以在目标 shell(选项卡)中运行 python/perl 脚本,以在 unix 套接字上侦听文本形式的命令,然后脚本可以执行这些命令。在 Python 中,为此您有模块 subprocess (call, Popen) 和 os (exec*)。如果您必须将控制权转移回调用进程,那么我建议您使用子进程,因为您也可以发回返回码。

    在选项卡之间切换是一个不同的操作,对调用/被调用进程没有任何影响。而且你已经提到了你打算如何做到这一点。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-15
      • 1970-01-01
      • 2012-05-26
      • 2018-06-08
      • 1970-01-01
      相关资源
      最近更新 更多