该方法在调用完shell脚本后,返回一个16位的二进制数,低位为杀死所调用脚本的信号号码,高位为脚本的退出状态码。
返回的结果都是0(使用位运算向右位移8位得到的结果就是高位值),代表代码正常退出。
我们如果需要的到脚本执行后返回的状态码,可以使用位运算得到。
第二种方案:os.popen
这种调用方法是通过管道的方式来实现的,函数返回一个file-like的对象,里面的内容是脚本输出的内容(可以简单的理解为echo的输出内容)
通过编写的shell脚本1.sh来尝试
1.commands.getstatusoutput(cmd)
使用os.popen()执行命令cmd,然后返回两个元素的元组(status, result)
cmd的执行方式是{cmd;} 2>&1,这样返回结果里面就包含了标准输出和标准错误
2.commands.getoutput(cmd)
只返回执行的结果,忽略返回值
3.commands.getstatus(file)
以上的调用方式根据实际的需要来选择对应的方式
python调用Shell脚本,有很多种方法,下面给出了三个python中执行shell命令的方法第一种方案:os.systemos.system返回脚本的退出状态码现有一个shell脚本1.sh#!/bin/shecho "hello world!!"在python中调用shell脚本import osstatus = os.system('sh ~/svnrepos/
python
_adb
shell
-1一:adb 调试命令二:os.system(cmd)1,介绍2, 多条子进程三:os.popen(cmd)1,介绍2,执行命令3,获取返回值四:subprocess(cmd)1,介绍2,subprocess.run(cmd)3,run()举例4, Popen() 方法1,介绍
一:adb 调试命令
os.system(cmd)的返回值是
脚本
的退出状态码,只会有0(成功),1,2,返回一个信号代码
os.popen(cmd)返回
脚本
执行的输出内容作为返回值
二:os.sys
因此如下只介绍2种方式:
一、使用commands模块,有三个方法可以使用:
(1)commands.getstatusoutput(cmd),其以字符串的形式返回的是输出结果和状态码,即(status,output)。
(2)commands.getoutput(cmd),返回cmd的输出结果。
(3)commands.getstatus(file),返回ls -l fil
os模块的popen方法
当需要得到外部程序的输出结果时,本方法非常有用,返回一个类文件对象,
调用
该对象的read()或readlines()方法可以读取输出内容。
os.popen(cmd) 要得到命令的输出内容,只需再
调用
下read()或readlines()等 如a=os.popen(cmd).read()
文件test.py
import sys
x = sys.stdin
for line in x:
print("receive",line)
文件main.py
import os
一、os.system(
shell
_command)
首先补充
shell
命令或者一个进程执行完成时返回的状态码,0 表示执行成功;1 表示执行出现异常或非正常退出。多说一句,在
shell
脚本
中,最后执行的的一条命令决定整个
shell
脚本
状态,返回
shell
脚本
的状态码。
所以使用os.system(
shell
_command)返回值是
shell
命令执行的状态码,int类型,0表示成功
二、os.popen(
shell
_command)
该方法以文件的形式返回
shell
指令运行后的结果,需要获..
如下图,其中最后一个0是这个命令的返回值,为0表示命令执行成功; popen():想要获取命令执行的结果,但是没有命令的执行状态。 commands:可以很方便的取得命令的输出(包括标准和错误输出)和执行状态位。commands.getoutput('ls')这个方法只返回执行结果result不返回状态。 在
python
中
调用
shell
脚本
hello.sh
下面的512是返回的状态码,如果
在
Python
中,可以使用 subprocess 模块
调用
shell
脚本
。可以使用 subprocess.run() 或 subprocess.call() 执行
shell
命令,也可以使用 subprocess.Popen() 创建新进程。示例代码如下:
import subprocess
subprocess.run(["sh", "script.sh"])
import subprocess
subprocess.call(["sh", "script.sh"])
import subprocess
subprocess.Popen(["sh", "script.sh"])
在上面的代码中,替换 "script.sh" 为你要
调用
的
shell
脚本
的文件名。