使用python执行shell脚本 并动态传参 及subprocess的使用详解
最近工作需求中 有遇到这个情况 在web端获取配置文件内容 及 往shell 脚本中动态传入参数
执行shell脚本这个有多种方法 最后还是选择了subprocess这个python标准库
subprocess这个模块可以非常方便的启动一个子进程,并且控制其输入和输出
Class Popen(args,bufsize = 0,executable=None, stdin =None,stdout =None,stderr =None, preexec_fn = None,close_fds = False,shell = False, cwd = None,env = None,universal_newlines = False, startupinfo = None,creationflags = 0):
参数是:
args 应该是一个字符串,或一系列程序参数。要执行的程序通常是args序列或字符串中的第一项,但可以使用可执行参数进行显式设置。
在UNIX上,与shell=False(默认):在这种情况下,POPEN 类使用os.execvp()来执行子程序。 args通常应该是一个序列。一个字符串将被视为一个字符串作为唯一项目(要执行的程序)的序列。
在UNIX上,使用shell = True:如果args是一个字符串,则它指定要通过shell执行的命令字符串。如果args是一个序列,则第一个项目指定命令字符串,并且任何其他项目将被视为附加的shell参数。
可以先创建一个简单的shell脚本 a.sh
$1 $2 分别代表传进脚本的 第一个和第二个参数
如果不写shell=True,默认为shell=False,需要在args的第一个参数指定执行器路径
==0 —— 子进程正常退出;
> 0—— 子进程异常退出,returncode对应于出错码;
< 0—— 子进程被信号杀掉了。
Popen.kill() 杀死进程
以上这篇使用python执行shell脚本 并动态传参 及subprocess的使用详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持来客网。