使用Pexpect捕获多个命令输出

时间:2015-12-10 15:17:30

标签: python-2.7 pexpect

我正在使用pexpect,

为cisco设备编写脚本
import pexpect
ssh_command = ' '
uname = ' '
pass = ' '
fout = file('logfile.txt','w')
child = pexpect.spawn (ssh_command)
print 'ssh initiated'
child.expect('.*name:')
child.sendline(uname)
child.expect('.*assword:')
child.sendline(pass)
child.expect('#')
child.sendline('sh ip int br')
child.logfile = fout
child.expect('#')
print(child.before)
child.sendline('sh hardware')
child.expect(['#',pexpect.EOF])
child.logfile = fout
fout.close()

由于某种原因,它发出第一个命令,我可以看到接口的输出,但脚本挂起。当我退出脚本时,它会在

上引发错误
child.expect(['#',pexpect.EOF])

似乎无法弄清楚它为什么会停在那里。

EDIT 追溯:

Traceback (most recent call last):
  File "helloworld.py", line 18, in <module>
    child.expect('#')

当我在没有print (child.before)的情况下运行时,我看不到输出,但它有效!它写入文件。

当我包含print (child.before)命令时,为什么脚本会挂起?

0 个答案:

没有答案