Perl expect-如何控制目标计算机上的超时

Perl expect-如何控制目标计算机上的超时,perl,send,expect,Perl,Send,Expect,我是perl的新手。我正在使用perl expect模块生成远程系统。使用send模块(比如$exp->send(“我的命令作为字符串出现在这里\n”),在那里一个接一个地执行一组命令。问题是我执行的命令需要一些时间来处理。在所有命令完成之前,远程计算机超时,我返回到主机提示符。您能帮助我如何处理此问题吗 我还有一个问题。我有一个命令,它在执行后返回2个值(假设我正在远程计算机上打印2个值)。我想捕获这2个值,并使用发送模块将其作为参数传递给下一个命令。我该如何做 请帮我解决这个问题 谢谢 我刚

我是perl的新手。我正在使用perl expect模块生成远程系统。使用send模块(比如$exp->send(“我的命令作为字符串出现在这里\n”),在那里一个接一个地执行一组命令。问题是我执行的命令需要一些时间来处理。在所有命令完成之前,远程计算机超时,我返回到主机提示符。您能帮助我如何处理此问题吗

我还有一个问题。我有一个命令,它在执行后返回2个值(假设我正在远程计算机上打印2个值)。我想捕获这2个值,并使用发送模块将其作为参数传递给下一个命令。我该如何做

请帮我解决这个问题

谢谢


我刚刚发现了一些关于expect模块的信息。有一个undef选项可以与expect一起使用,比如$exp->expect(undef)。这将无限期等待,并让所有命令完成其处理。但问题是,它不会将控件返回到主机。还有一个选项使用expect with eof,它将等待遇到eof,然后返回到主机。尽管不知道如何确切地使用它。一个优雅的解决方案在这一点上,我发现使用ssh在远程机器上运行命令,而不是使用expect,在这种情况下,我们不必处理超时问题。

我刚刚了解了expect模块的一些情况。有一个undef选项可以与expect一起使用,比如$exp->expect(undef)。这将无限期等待,并允许所有命令完成其处理。但问题是,它不会将控制权返回到主机。还有一个使用expect with eof的选项,它将等待遇到eof,然后返回到主机。虽然不知道如何使用它。我发现的一个优雅的解决方案是使用ssh在远程计算机上运行命令,而不是使用expect,在这种情况下,我们不必处理超时问题。:)

有人对expect有什么解决方案吗??