pexpect“没有这样的文件或目录”对于有效的bash命令

时间:2013-11-15 16:17:06

标签: python bash grep pexpect

sCMD = 'ssh user@host cat some/path | grep "Oct 31\|Oct 30"'
child = pexpect.spawn(sCMD)
try:
    child.expect("assword")
except pexpect.EOF:
    raise Exception("Cannot connect to host")
child.sendline(ssh_pass)
lData = [s.strip(' \n\r:') for s in child.readlines()]

lData [0]读取“No such file or directory”

如果我将第一行更改为:

sCMD = 'ssh user@host cat some/path'

然后lData包含文件中的所有行。

但是如果我在终端中执行完全相同的命令(使用grep)它可以正常工作 - 它会返回我期望的文本。没有抱怨。

知道为什么命令在通过pexpect执行时表现不同?

1 个答案:

答案 0 :(得分:0)

sCMD = 'ssh user@host \'cat some/path | grep "Oct 31\|Oct 30"\''

出于某种原因,pexpect需要那些额外的单引号。