У меня есть команда, которая выглядит так:
ps v -p 2585 | awk '{if ($9 != "%MEM") {print $9}}'
Теперь это нормально работает в bash, просто занимает часть памяти любого pid, который вы ему даете. Тем не менее, я сейчас пытаюсь реализовать его в 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, которая работает. Кто-нибудь может помочь?