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


当前回答

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

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

其他回答

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

Syntax error: "(" unexpected

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

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

如果你想传递一些参数到你的shell脚本,你可以使用shlex.split()方法:

import subprocess
import shlex
subprocess.call(shlex.split('./test.sh param1 param2'))

将test.sh放在同一个文件夹中:

#!/bin/sh
echo $1
echo $2
exit 0

输出:

$ python test.py 
param1
param2

请尝试以下代码:

Import Execute 

Execute("zbx_control.sh")

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

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

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

os.system("sh test.sh")