如何从python代码调用shell脚本?
当前回答
如果您的shell脚本文件没有执行权限,请按照以下方法执行。
import subprocess
subprocess.run(['/bin/bash', './test.sh'])
其他回答
import os
import sys
假设test.sh是您想要执行的shell脚本
os.system("sh test.sh")
如果您的shell脚本文件没有执行权限,请按照以下方法执行。
import subprocess
subprocess.run(['/bin/bash', './test.sh'])
请尝试以下代码:
Import Execute
Execute("zbx_control.sh")
以防脚本有多个参数
#!/usr/bin/python
import subprocess
output = subprocess.call(["./test.sh","xyz","1234"])
print output
输出将给出状态代码。如果脚本成功运行,它将给出0否则非零整数。
podname=xyz serial=1234
0
下面是test.sh shell脚本。
#!/bin/bash
podname=$1
serial=$2
echo "podname=$podname serial=$serial"
我知道这是一个老问题,但我最近偶然发现了这个问题,它最终误导了我,因为Subprocess API自python 3.5以来发生了变化。
执行外部脚本的新方法是使用run函数,它运行args所描述的命令。等待命令完成,然后返回一个CompletedProcess实例。
import subprocess
subprocess.run(['./test.sh'])
推荐文章
- 证书验证失败:无法获得本地颁发者证书
- 当使用pip3安装包时,“Python中的ssl模块不可用”
- 无法切换Python与pyenv
- Python if not == vs if !=
- 如何从scikit-learn决策树中提取决策规则?
- 为什么在Mac OS X v10.9 (Mavericks)的终端中apt-get功能不起作用?
- 将旋转的xtick标签与各自的xtick对齐
- 为什么元组可以包含可变项?
- 如何合并字典的字典?
- 如何创建类属性?
- 不区分大小写的“in”
- 在Python中获取迭代器中的元素个数
- 解析日期字符串并更改格式
- 查看PS命令的全部输出
- 使用try和。Python中的if