我想从 python 脚本执行一个带有 3 个参数的 shell 脚本。(如此处所述:Python:使用参数(变量)执行shell脚本,但在shell脚本中未读取参数)
这是我的代码:
subprocess.call('/root/bin/xen-limit %s %s %s' % (str(dom),str(result),str('--nosave'),), shell=True)
变量 dom 和 result 包含字符串。
这是输出:
/bin/sh: --nosave: not found
更新:
那是变量“结果”:
c1 = ['/bin/cat', '/etc/xen/%s.cfg' % (str(dom))]
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()
之后,变量 result 包含一个带有 mbit 的数字(例如 16mbit)
dom 是一个类似“myserver”的字符串