管道角色弄乱了我的pexpect命令字符串

时间:2014-12-30 01:17:05

标签: python unix pipe pexpect

我有一个我构建的字符串然后传递给pexpect:

command = "for i in `python /tmp/"+ cecUser + "_getSyslogs.py " + startString + " " + endString + " " + myDir + "`;do gzcat /emslogs/archive/" + myDir + "/$i | grep " + node + " | egrep -v \"" + filteredWords + "\" >> /tmp/" + syslogFile + ";done"

p.sendline(command)

如果filteredWords =“没有LMA地址”,则脚本运行正常。

如果filteredWords =“没有LMA地址| CLISess”,则脚本失败。

我错过了什么?我试图通过前面的|来逃避\,这没有帮助。我实际上尝试了一大堆不同的组合,脚本仍然失败。什么是odder是p.logfile的日志输出看起来很好:

$ for i in `python /tmp/getSyslogs.py 20141227120000 20141228120000 local1`;do gzcat /emslogs/archive/local1/$i | grep ALPRGAGQPN2 | egrep -v "No LMA address|CLISess" >> /tmp/1419900585.83_ALPRGAGQPN2_syslogs.txt;done

如果我在目标机器上切断“那条线”,那就没问题了。 egrep中的管道只是在传递给p.sendline时搞乱了。

0 个答案:

没有答案