Pexpect无法正确获得输出

时间:2017-10-03 14:56:44

标签: python ssh pexpect

我使用Pexpect与远程防火墙进行交互。交互中的所有内容都可以,但是当我尝试使用child.before获取输出时,我得不到我想要的内容。这是我的代码:

child = pexpect.spawn('ssh admin@X.X.X.X')
child.sendline(password)
child.expect('>')
child.sendline('set cli pager off')
child.expect('>')
child.send('show system info')
child.expect('>')
child.before

我在child.before句子中获得的输出是下一个:

  

'设置cli \ r \ x1b [Kadmin @ name(有效)'

在防火墙方面,这是我正在接收的交互(它直接从child.interact()复制):

admin@ctsmefw1(active)> set cli pager off
admin@ctsmefw1(active)> show system info

hostname: name
ip-address: ip
# ...There are more lines but these are omitted here...

admin@name(active)> 

因此与防火墙的交互是正确的。为什么我无法获得输出?我究竟做错了什么?

感谢您的帮助,问候

麦克

1 个答案:

答案 0 :(得分:0)

您应该将child.send('show system info')更改为child.sendline('show system info')