from subprocess import call
import sys
import os
import subprocess
if(call("hg clone --insecure https://mixmaster.netwitness.local/" + "sys.argv[1]", shell=True)):
sys.stdin = sys.argv[2]
sys.stdin = sys.argv[3]
else :
print("error")
答案 0 :(得分:0)
参数是否有引号的原因?还可以使用%来替换字符串中的标记。将其更改为:
if(call("hg clone --insecure https://mixmaster.netwitness.local/%s" % sys.argv[1], shell=True)):
修改强>
如果要传递由空格分隔的所有参数,请使用此
if(call("hg clone --insecure https://mixmaster.netwitness.local/%s" % (" ".join(sys.argv[1:])), shell=True)):
答案 1 :(得分:0)
hg
提供的参数中的空格。正如您在@Rajesh答案的评论中指出的那样,您希望将3个参数传递给hg
,以下内容应该有效:
from subprocess import call
import sys
import os
import subprocess
cmd = ["hg", "clone", "--insecure", "https://mixmaster.netwitness.local/", sys.argv[1], sys.argv[2], sys.argv[3]]
if not (call(cmd, shell=True)):
print("error")
如果你真的想提供sys.argv [2]和sys.argv [3]作为hg
提示的输入。您不应该使用call
,因为它可能阻止hg
进程,请使用Popen
。