如何从python代码调用shell脚本?


当前回答

请尝试以下代码:

Import Execute 

Execute("zbx_control.sh")

其他回答

请尝试以下代码:

Import Execute 

Execute("zbx_control.sh")

使用@Manoj-Govindan的答案,我发现我可以从python运行简单的shell脚本,但我拼命想要运行的脚本会因为错误而失败

Syntax error: "(" unexpected

我把第一个参数从'sh'改成了'bash',还有viola!突然,它执行了。

subprocess.call(['bash', './test.sh'])

如果您的shell脚本文件没有执行权限,请按照以下方法执行。

import subprocess
subprocess.run(['/bin/bash', './test.sh'])

我知道这是一个老问题,但我最近偶然发现了这个问题,它最终误导了我,因为Subprocess API自python 3.5以来发生了变化。

执行外部脚本的新方法是使用run函数,它运行args所描述的命令。等待命令完成,然后返回一个CompletedProcess实例。

import subprocess

subprocess.run(['./test.sh'])

如上所述,使用子流程模块。

我是这样使用的:

subprocess.call(["notepad"])