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


当前回答

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

Syntax error: "(" unexpected

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

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

其他回答

请尝试以下代码:

Import Execute 

Execute("zbx_control.sh")

为了在python脚本中运行shell脚本,并从ubuntu中的特定路径运行它,请使用下面的方法;

import subprocess

a= subprocess.call(['./dnstest.sh'], cwd = "/home/test") 

print(a)

CWD是当前工作目录

下图将不能在Ubuntu中运行;这里我们需要删除'sh'

subprocess.call(['sh' ,'./dnstest.sh'], cwd = "/home/test")

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

import os
os.system(command)

是最简单的方法之一。

Subprocess很好,但有些人可能更喜欢scriptine。Scriptine有更高级的方法集,如shell.call(args), path.rename(new_name)和path.move(src,dst)。Scriptine基于子流程和其他。

scriptine的两个缺点:

当前的文档水平将更加全面,即使它是足够的。 与subprocess不同,scriptine包目前默认不安装。

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

我是这样使用的:

subprocess.call(["notepad"])