使用python脚本中的参数执行shell脚本

时间:2017-07-16 03:53:38

标签: python shell

My Shell脚本从命令行

执行
./pro.sh "Argument1"

我从我的python脚本中调用它,目前就像这样

subprocess.call(shlex.split('bash pro.sh "Argument1"'))

如何将Argument1的值作为变量传递。我对脚本的参数可以是任何字符串。我该如何实现这一目标?

2 个答案:

答案 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。如果您不小心使用它,这可能是一个安全问题。