My Shell脚本从命令行
执行./pro.sh "Argument1"
我从我的python脚本中调用它,目前就像这样
subprocess.call(shlex.split('bash pro.sh "Argument1"'))
如何将Argument1的值作为变量传递。我对脚本的参数可以是任何字符串。我该如何实现这一目标?
答案 0 :(得分:1)
使用子进程调用shell脚本
subprocess.Popen(['run.sh %s %s' % (var1, var2)], shell = True)
答案 1 :(得分:1)
您可以使用
subprocess.Popen(["bash", "pro.sh", "Argument1"])
如果您的字符串参数是多个单词,它应该可以正常工作。
subprocess.Popen(["bash", "pro.sh", "Argument with multiple words"])
只要多个单词在传递给subprocess.Popen()
的列表中的一个字符串中,就会将其视为该命令的参数列表中的一个参数。
除非有充分的理由,否则不应使用shell=True
。如果您不小心使用它,这可能是一个安全问题。