我有一个我构建的字符串然后传递给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时搞乱了。