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


当前回答

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

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

其他回答

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

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

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

显而易见的小例子:

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

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

import os
import sys

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

os.system("sh test.sh")

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

我是这样使用的:

subprocess.call(["notepad"])

Subprocess模块是启动子进程的好模块。 你可以使用它来调用shell命令,如下所示:

subprocess.call(["ls","-l"]);
#basic syntax
#subprocess.call(args, *)

你可以在这里看到它的文档。

如果您的脚本是用.sh文件或长字符串编写的,那么您可以使用os。系统模块。调用它相当简单和容易:

import os
os.system("your command here")
# or
os.system('sh file.sh')

该命令将运行脚本一次,直到完成,然后阻塞直到退出。