关于python中嵌套shell命令的求助
shell命令如下:ps -ef |grep tomcat | awk '{for(i=1;i<=NF;i++) print '\n' $i}' | grep 'Dcatalina.home' | awk -F '=' '{print $NF}'
在环境中执行是完全没有问题的,可是放到我的python脚本中,就会出现报错。先放上我的python脚本
cmd2=os.popen("""ps -ef |grep tomcat | awk '{for(i=1;i<=NF;i++) print '\n' $i}' | grep 'Dcatalina.home' | awk -F '=' '{print $NF}'""")
logpath=cmd2.readline().strip('\n')
print logpath
然后,执行的时候,会出现如下错误:
awk: cmd. line:1: {for(i=1;i<=NF;i++) print
awk: cmd. line:1: ^ unexpected newline or end of string
grep: write error: Broken pipe
sh: line 1:$i}: command not found
求教各位大神,我该如何修改? 本帖最后由 Linux_manne 于 2014-08-27 15:35 编辑
cmd=r'''......'''
os.system(cmd) 但是不推荐这种写法
最好用subprocess 这样你的shell 也可以不要用pipe 了
subprocess 可以将输出pipe 为 输入一步一步替换下去
回复 3# Linux_manne
多谢!我试试! 都 python了, 还要这么多 shell 命令进来干嘛?
直接 用 os 的mod 不行?
页:
[1]