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

2024-04-27 15:49:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我构建了一个字符串,然后传递给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地址剪辑”,则脚本失败。在

我错过了什么?我试图通过前面的\来逃避|,但这没用。实际上,我尝试了很多不同的组合,但脚本还是失败了。更奇怪的是p.logfile的日志输出看起来很好:

^{pr2}$

如果我把那条线剪贴在目标机器上,就没问题了。当传送到p.sendline时,白鹭中的管道有点问题。在


Tags: 字符串inpy脚本for地址tmpcommand