如何发送单个ssh命令来获取带有pexpect的结果字符串?

时间:2013-11-11 20:26:17

标签: python performance ssh pexpect

我正在努力使我的代码尽可能高效和简单。我想把我的pexpect命令变成一行:

当前命令(简化):

import pexpect
...
session=pexpect.spawn( 'ssh  %s@%s'%(un,ip), timeout)
session.expect(prompt, timeout)
session.sendline('ls')
session.expect(prompt)
print session.before

我想在我的ssh命令中执行此操作但是我返回一个pexpect对象,有没有办法只返回输出字符串?

import pexpect
    ...
    print str(pexpect.spawn( 'ssh  %s@%s ls'%(un,ip), timeout))

是否有可能将上述代码更改为有效?

我必须使用pexpect或标准python 2.4,而不是paramiko :(

1 个答案:

答案 0 :(得分:1)

你想要read() method

p = pexpect.spawn('ssh  %s@%s ls'%(un,ip), timeout)
print(p.read())