【问题标题】:Can we start two ssh terminals from same expect script我们可以从同一个期望脚本启动两个 ssh 终端吗
【发布时间】:2012-04-24 14:57:47
【问题描述】:

我正在使用 perl 模块“Expect”来实现交互式会话的自动化。该脚本打算在本地主机上生成一个 ssh 终端(比如说)。所以问题是可以从同一个脚本中使用两个生成命令(用于生成两个 ssh 终端)。在这种情况下,两个衍生进程如何共享 ssh 终端。我发现两个生成的命令实际上共享 ssh 终端。所以终端上的用户界面实际上是凌乱的。上面的说法是真的吗?

问题 1) 如果为真,是否有更好的方法来控制生成的进程访问 ssh 终端。

场景: 1) 说 perl 脚本“demo.pl”有两个生成命令,它们确实在本地生成一个 ssh 终端。 2) 生成的进程实际上共享执行 perl 脚本的 ssh 终端。

问题 2) 那么有什么方法可以启动一个全新的 ssh 终端,而不是使用现有的。

【问题讨论】:

    标签: perl perl-module expect


    【解决方案1】:

    终端模拟器和ssh 是不同的程序。您可以生成单独的终端,每个终端都包含一个 ssh 命令 - 但无法通过脚本与它们交互,因为终端正在处理与其包含的 ssh 的通信,而不是使其可用于您的脚本。

    您的选择是使用 Perl 小部件包或在“从属”模式下使用终端模拟器(例如,请参阅 xterm 的 -S 选项)——无论哪种情况,您都需要跟踪分别为每个 spawnid 输入和输出,并将其定向到适当的小部件或模拟器。

    【讨论】:

      猜你喜欢
      • 2019-02-21
      • 2019-12-22
      • 1970-01-01
      • 1970-01-01
      • 2021-06-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-04
      相关资源
      最近更新 更多