我想在Python腳本執行以下Shell命令:從Python的執行shell腳本有多個管道
dom=myserver
cat /etc/xen/$myserver.cfg | grep limited | cut -d= -f2 | tr -d \"
我有這樣的:
dom = myserver
limit = subprocess.call(["cat /etc/xen/%s.cfg | grep limited | cut -d= -f2", str(dom)])
subprocess.call(['/root/bin/xen-limit', str(dom), str(limit)])
它不工作,但我不「知道爲什麼..
更新:
c1 = ['cat /etc/xen/%s.cfg']
p1 = subprocess.Popen(c1, stdout=subprocess.PIPE)
c2 = ['grep limited']
p2 = subprocess.Popen(c2, stdin=p1.stdout, stdout=subprocess.PIPE)
c3 = ['cut -d= -f2']
p3 = subprocess.Popen(c3, stdin=p2.stdout, stdout=subprocess.PIPE)
c4 = ['tr -d \"']
p4 = subprocess.Popen(c4, stdin=p3.stdout, stdout=subprocess.PIPE)
result = p4.stdout.read()
limit = subprocess.call([result])
subprocess.call(['/root/bin/xen-limit', str(dom), str(limit)])
整個管道可以與單一命令'AWK -F = '/有限/ {打印GSUB( 「\」」, 「」,$ 2)}' 的/ etc/xen的/ $替換myserver.cfg'(必要時替換'$ myserver') – chepner