【发布时间】:2015-12-18 21:11:22
【问题描述】:
我有一个 shell 命令,我需要发送一个多维数组作为参数。
subprocess.call(['rndc', 'addzone', domain, 'in', 'external', '"{type master; auto-dnssec maintain; inline-signing yes; key-directory \"/home/ex-mailer-domains/domain.com/\"; file \"/home/ex-mailer-domains/domain.com/domain.com.external\"; update-policy { grant ddns-key zonesub ANY; };};"'
subprocess.call(['rndc', 'loadkeys', domain])
我收到的错误:
[\u@yoda:/usr/local/etc/namedb] # python3.4 makedomain3.py mylabel domain.com 108.61.169.203 255.255.254.0 2001:19f0:5800:8561:5400:00ff:fe07:cae5 1
File "makecustdomain3.py", line 249
subprocess.call(['rndc', 'loadkeys', domain])
^
SyntaxError: invalid syntax
shell 中的实际命令:
rndc addzone domain.com in external '{type master; auto-dnssec maintain; inline-signing yes; key-directory "/home/ex-mailer-domains/domain.com/"; file "/home/ex-mailer-domains/nyctelecomm2.com/domain.com.external"; update-policy { grant ddns-key zonesub ANY; };};'
rndc loadkeys domain.com
如何正确地将多维数组数据作为参数传递给python3中的subprocess.call()?
【问题讨论】:
-
“多维数组”在这里无关紧要。从您的示例中,它只是一个字符串。
标签: python arrays python-3.x subprocess