python执行linux管道,使用多个管道从Python执行Shell脚本

博主尝试在Python脚本中通过子进程执行一系列Shell命令,包括读取配置文件、过滤和处理信息,但遇到了问题。他们试图通过Popen逐个执行`cat`、`grep`、`cut`和`tr`命令,并传递结果到后续命令,但最终的`limit`变量没有正确设置。更新后的代码中,博主使用Popen和管道连接各个命令,但似乎仍然存在错误导致脚本无法正常工作。
摘要由CSDN通过智能技术生成

我想在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)])

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值