从python运行shell脚本

The*_*man 7 python

我试图使用以下内容从python脚本运行shell脚本:

from subprocess import call
call(['bash run.sh'])
Run Code Online (Sandbox Code Playgroud)

这给了我一个错误,但我可以成功运行其他命令,如:

call(['ls'])
Run Code Online (Sandbox Code Playgroud)

Big*_*her 11

你应该分开论点:

call(['bash', 'run.sh'])
call(['ls','-l'])
Run Code Online (Sandbox Code Playgroud)


Joe*_*ung 5

from subprocess import call
import shlex
call(shlex.split('bash run.sh'))
Run Code Online (Sandbox Code Playgroud)

您想正确标记您的命令参数。 shlex.split()会为你做的。

来源:https : //docs.python.org/2/library/subprocess.html#popen-constructor

注意 shlex.split() 在确定 args 的正确标记化时很有用,尤其是在复杂的情况下: