我使用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)>
因此与防火墙的交互是正确的。为什么我无法获得输出?我究竟做错了什么?
感谢您的帮助,问候
麦克
答案 0 :(得分:0)
您应该将child.send('show system info')
更改为child.sendline('show system info')
。