我有一个如下所示的命令:
ps v -p 2585 | awk '{if ($9 != "%MEM") {print $9}}'
现在这在 bash 中运行得很好,它只需要你给它的任何 pid 的内存部分。不过我现在正在尝试用 python 实现它,但遇到了一些问题。这是我在 python 中的内容
cmd1 = ['ps', 'v', '-p', pid]
cmd2 = ['awk', '\'{if ($9 != "%MEM") {print $9}}\'']
现在运行它们...
runcmd1 = subprocess.Popen(cmd1, stdout=subprocess.PIPE)
runcmd2 = subprocess.Popen(cmd2, stdin=runcmd1.stdout, stdout=subprocess.PIPE)
我收到此错误:
awk: '{if (\$9 != "%MEM") {print \$9}}'
awk: ^ invalid char ''' in expression
我用它来打印命令的样子......
sys.stdout.write(' '.join(cmd1)+' '+'|'+' '+' '.join(cmd2)+'\n')
它给出了:
ps v -p 1073 | awk '{if ($9 != "%MEM") {print $9}}'
我认为这和实际运行的 bash 命令没有区别。有人可以帮忙吗?