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


当前回答

请尝试以下代码:

Import Execute 

Execute("zbx_control.sh")

其他回答

子流程模块将帮助您解决这个问题。

显而易见的小例子:

>>> import subprocess
>>> subprocess.call(['sh', './test.sh']) # Thanks @Jim Dennis for suggesting the []
0 
>>> 

其中test.sh是一个简单的shell脚本,0是这次运行的返回值。

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

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

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

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

import subprocess

subprocess.run(['./test.sh'])
import os
import sys

假设test.sh是您想要执行的shell脚本

os.system("sh test.sh")

有一些方法使用os.popen()(已弃用)或整个子进程模块,但这种方法

import os
os.system(command)

是最简单的方法之一。