0

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

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

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

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

4

1 回答 1

1

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

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

于 2012-04-24T06:57:47.313 回答