3

现在我正在一个项目中工作,其中测试脚本必须连接许多(3-10)台远程计算机(SSH 并做一些事情)。我开始使用 pexpect,它就像一个按钮一样简单。它工作正常。

我想在测试期间查看通信。我知道可以将日志重定向到屏幕。但在这种情况下,日志(来自不同的计算机)是混合的。我想要的是为每个新的 spawn 对象打开新的终端窗口(或 consol 或其他)。在这种情况下,我可以看到不同窗口中的所有通信。此外,我想在每个窗口中保留 spawn.interact() 的可能性。我觉得这是可能的,但我不知道如何。我认为一些文件指针(或管道)应该以某种方式传递到新窗口(?)(SecureCRT 知道这样的事情,它有选项卡式控制台窗口并且可以单独访问它们,但它是一个商业产品)

或者让我让问题更简单。如果这样做,我可以在新窗口中打开一个新 shell:

p=Popen(["cygstart", "bash"])

如何从我的脚本(父级)读取和写入这个 shell 以在这个新窗口中看到它?

如果你们中的一个人能指出我正确的方向,我将不胜感激。

如果您告诉我(在 Google 上)要阅读或查找什么就足够了,因为我没有发现任何此类问题。环境是cygwin。

提前致谢

br:drv

4

1 回答 1

0

您是否尝试过使用 logfile 参数?

child = pexpect.spawn('some_command')
mylog = open('/tmp/mylog','w')
child.logfile = mylog

这将自动记录所有与文件的通信,包括您在调用 spawn.interact() 后输入的命令

可在网站上获得更多信息:http: //pexpect.sourceforge.net/pexpect.html 搜索“日志文件”以查找相关文档。

于 2012-03-07T17:23:18.823 回答