shell脚本怎么调用python的return值

我在python下写了一个比较字符串的python函数如下:

import time

if name == "__main__":
fo = open("steps.txt", "r+")
steps = fo.read()
print "读取的step是 : ", steps
fo.close()

T0 = 0
X = 600
ticks = time.time()
T = (long(ticks) - T0) / X
step = str(T).upper()
while len(step) < 16:
    step = "0" + step

def compare():
    if steps == step:
        return 1
    else:
        return 0

compare()

然后我想在shell脚本里调用这个compare.py获取函数return的值
代码如下:
#!/bin/bash
var1=python compare.py
echo $var1
$var1并没有输出我想看到的return值1或0,而是执行了整个py文件
我只想接受这个return值有什么好的方法吗

0

2个回答

1
weijingpeng1
weijingpeng1 回复柳罐罐: 请问 有解决方案了没
3 个月之前 回复
weixin_42340144
柳罐罐 感谢解答!!!
12 个月之前 回复

python调用shell脚本的返回值处理几种方式:

shell脚本准备 hello.sh:
echo "hello world!"
echo "succeed";

  1. 使用os.system返回执行状态值 #------------------------------------------ #一、执行shell命令的状态返回值 #------------------------------------------ v_return_status=os.system( 'sh hello.sh') print "v_return_status=" +str(v_return_status)

输出结果:
hello world!
succeed
v_return_status=0

  1. 使用os.popen返回结果

    无返回终端,只打印输出内容
    #------------------------------------------
    #二(一)、获取shell print 语句内容一次性打印
    #------------------------------------------
    p=os.popen('sh hello.sh')
    x=p.read()
    print x
    p.close()

#------------------------------------------
#二(二)、获取shell print 语句内容,按照行读取打印
#------------------------------------------
p=os.popen('sh hello.sh')
x=p.readlines()
for line in x:
print 'ssss='+line

输出结果:

hello world!
succeed

ssss=hello world!

ssss=succeed
3. 使用commands.getstatusoutput() 一个方法就可以获得到返回值和输出,非常好用。
#------------------------------------------
#三、尝试第三种方案 commands.getstatusoutput() 一个方法就可以获得到返回值和输出,非常好用。
#------------------------------------------
(status, output) = commands.getstatusoutput('sh hello.sh')
print status, output

输出结果:

0 hello world!
succeed

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
shell 中如何调用python代码的返回值
a=$(/usr/bin/python /path/hooks.py "$1" "$2" ) echo $a 若有参数需要在执行python后加上参数"$1" "$2" a=$(python my1.py) echo $a
shell脚本中函数调用的返回值,以及退出状态问题
     最近开始学习shell脚本,由于之前没怎么接触过linux和shell,所以一切从头开始学起     shell脚本编写方法与编程类似,只是趋向于面向对象编程(个人理解,如果错误,麻烦各位老鸟指出)。其他关于shell脚本到底是怎么样的一个东西大家可以上网查找一下资料。     由于之前写代码,使用的都是C,C++,C#之类的编译型(compiled)语言,所以在接触与学习shell脚本这类脚本(scripting)编程语言的时候,总会不由自主的联想到C,C++,通过类比的方法来学习shell脚本
shell中调用python脚本
获取py脚本中print内容,同样通过output=python *.py或output=$(python *.py)获取,通过这种方式py中的print不会在控制台输出# test.py print 'test' exit('error message')# 运行脚本 x=`python test.py` echo $? echo ${x}输出 error message 1 test
Python新手学习基础之函数-return语句与函数调用
python函数的调用方法,以及return语句的使用
Shell脚本中的return,exit 0,以及 父进程获取子进程的变量
shell脚本中,一般在脚本的函数里面使用return语句,函数中使用return语句后,表示函数执行完毕,函数中return语句后面的代码将不再执行,同时脚本将继续执行函数后的代码。但是exit 0无论在脚本中,还是函数中,一旦使用,将退出整个shell脚本。
python学习之路---函数:定义def、调用、返回值return、参数说明、参数陷阱
#函数 #可读性强,复用性强 #函数定义:定义了之后,可以在任何需要的地方调用 #格式: def 函数名(): 例子:def mylen(): # 没有返回长度,只能单纯的打印 # return 返回值的重要性 定义了一个函数,建议都带一个返回值,不然无法进行赋值 #完整例子:def 函数名(): #            函数体 #            return 返回值 # #定义函数...
python 获得shell命令的返回值
如果只是简单地执行shell命令,可以这样:     import os os.system('ls')   得到shell的输出(不管标准输出或是错误输出)     import commands result= commands.getstatusoutput(shellcommand) output= result[1]   但是无法输入信息到shell...
Python一个函数return两个值的取法(tuple的切片)
dict = { '元旦': '0101', '情人节': '0214', '植树节': '0312', '国庆节': '1001', } def get_holiday(words): for key,value in dict.items(): if str(words).__conta...
shell脚本 之 函数返回值
shell 函数返回值 只允许返回数字,若不是则报 line 6: return: haha: numeric argument required 若是写了return ,则返回return 语句跟的数值,若是没有return语句则返回最后一个命令的执行结果。   用例子说话吧   1 #!/bin/bash   2    3 returnNum(){   4       r...
python学习之--调用shell脚本
python调用Shell脚本,有很多种方法,下面给出了三个python中执行shell命令的方法 第一种方案:os.system os.system返回脚本的退出状态码 现有一个shell脚本1.sh #!/bin/sh echo "hello world!!"在python中调用shell脚本 import os status = os.system('sh ~/svnrepos/
python-函数-返回值(return)
-
shell脚本中执行python脚本并接收其返回值的例子
shell脚本中执行python脚本并接收其返回值的例子 投稿:junjie 字体:[增加 减小] 类型:转载 时间:2014-08-29 我要评论 这篇文章主要介绍了shell脚本中执行python脚本并接收其返回值的例子,本文重点在于如何接收python脚本的返回值,需要的朋友可以参考下 1.在shell脚本执行python脚本时,需要通过python
python 函数返回多个值
(廖雪峰Python教程学习笔记)函数体内部的语句在执行时,一旦执行到return,函数就执行完毕,并将结果返回。 如果没有return语句,函数执行完毕后也会返回结果,只是结果为None。 return None可以简写为return。Python中的函数是可以返回多个值的。比如在游戏中经常需要从一个点移动到另一个点,给出坐标、位移和角度,就可以计算出新的新的坐标:import math de
python的函数返回值‘调用’参数
一,函数的返回值1、什么是返回值 返回值是一个函数的处理结果, 2、为什么要有返回值 如果我们需要在程序中拿到函数的处理结果做进一步的处理,则需要函数必须有返回值 3、函数的返回值的应用 函数的返回值用return去定义 格式为: return 值 注意: 1、return是一个函数结束的标志,函数内可以有多个retu...
python中return返回值的问题
原代码: 运行结果: 我是想通过return返回 ‘无解’ ,但实际运行之后,返回了无解,还返回了一个空值。这是什么原因呢? 我的think:return print(‘无解’)被当成了两句代码来执行。 注:在交互模式下,return的结果会自动打印出来,而作为脚本单独运行时需要print函数才能显示。 修改一下: 思考中。。。 ...
shell调用python脚本,并且向python脚本传递参数
shell中: python test.py $para1 $para2 python中: def main($canshu1, $canshu2)   ..... main(sys.argv[1], sys.argv[2])
python调用shell脚本的两种方法
os.system()和os.popen() 1.python调用Shell脚本,有两种方法:os.system()和os.popen(), 前者返回值是脚本的退出状态码,后者的返回值是脚本执行过程中的输出内容。 &amp;gt;&amp;gt;&amp;gt;help(os.system) Help on built-in function system in module posix: system(...)...
python 捕获 shell/bash 脚本的输出结果实例
在使用 "fastboot.exe oem sku"这个自定义命令的时候,发现无法获取output内容,使用下面的方法可以; 多数情况下,我们使用“result = subprocess.check_output("fastboot.exe devices", shell=True) ”就应该可以从STD oupt获取内容。 下面是项目用到的代码片,共大家参考 # G
【原】Gradle调用shell脚本和python脚本并传参
Gradle,调用shell脚本,python脚本,传参
shell脚本调用python脚本,并传参
shell脚本调用python脚本,并传参。 本文以删除指定文件夹下,以当前时间为基准 的指定天数以前的文件,包括空文件夹
sh 获取 执行python的结果:$?
sh脚本中执行了python脚本,如mysh.sh文件: python "mypy.py" result = $? result就是调用python执行的结果。
PowerShell 函数返回值的问题
 PowerShell 函数返回值的问题Powershell的函数返回值与其他脚本语言存在较大差别,我也是在研究了好一阵子才明白是怎么回事。第一要搞明白什么是“默认输出”,默认输出就是没有指定任何特定输出设备的语句所要输出到的地方。相当于传统编程语言或者shell的stdout,其实就叫标准输出也行。像如下语句:PS C:/Users/Administrator>
python 递归中的坑: return得到None
本文为作者原创文章,未经同意,请勿转载! return的作用是将函数结果返回,即退出def函数模块。大量的教材和网上教程都有说明函数执行遇到return就会结束,返回一个值给调用函数处。常规用法确实是这样,但在递归调用中却存在一个坑,今天就遇到了,举个例子: 一个简单的不断相加的递归小程序: def add(sum,x,y): if sum&amp;lt;10: x +=2...
第8课 Python自定义函数返回值:单返回值和多返回值问题
1.Python函数返回值 两种形式: 1 返回一个值。 2 返回多个值。 现看看返回一个值的吧。 def firstvalue(a,b):     c = a + b     return c print firstvalue(1,2)结果:3 再看看返回多个值的: 那怎么可以返回多个值呢,其他的语言一般调用函数的话,只能返回一个值,可能我不太熟悉所有的语言,我知道的语言只能返回一个
python 函数返回列表、字典 return
特点: 所有函数都有返回值,如果没有 return 语句,会隐式地调用 return None 作为返回值 一个函数可以存在多条 return 语句,但只有一条可以被执行 如果函数执行了 return 语句,则结束函数,即:return 之后的语句都不会被执行 函数的返回值可以是一个数、列表、字典,返回列表、字典时该怎么办呢? 返回值是字典,而我们要取字典中的某个值时: def func1...
Python初体验:python程序获取bash脚本中某个变量的值
1. 需求:python程序获取bash脚本中某个变量的值。2. 实现:2.1 ./version-gen-bypass.sh脚本将变量值输出到文件./.verno中。2.2 通过python文件IO获取./.verno中的变量值。此时line6中的pVERNO字符串变量中含有换行符'\n'。2.3 通过line10和line11将获取到的字符串首先转换为整数,然后将整数转换为字符串,目的是去掉换...
python编写shell脚本
python编写shell脚本python编写shell脚本python编写shell脚本python编写shell脚本python编写shell脚本python编写shell脚本python编写shell脚本python编写shell脚本python编写shell脚本python编写shell脚本
python 如何调用带参数的shell脚本
举例: shell的脚本: t.sh内容: echo "this is a test shell with arguments" echo "arg1 = $1; arg2 = $2;" 执行脚本./t.sh zhao 结果如下: [noncode@gnode108 knockdown_workflow]$ ./t.sh zhao1 zhao2 th
python获得线程调用函数的返回值
threading.Thread 并没有显式的提供获取线程调用函数返回值的方法,需求自己实现。 使用数据库是一个办法: 可以让子线程将数据写到数据库中,消费线程再去数据库中读取数据; 如果不想用数据库,可以使用类的全局变量来做传递, 示例代码如下: import os import threading class SubThread():     data = {}    
python在linux中执行shell脚本的方法
import os os.system('sz images/plot1.png')
Shell函数返回多个值
#Shell函数返回多个值 test(){ echo 100 #返回100 echo 200 #返回200 } a=$(test) #则得到a="100 200" #!/bin/bashfunction get_param{    eval $1="'This is x1'"    eval $2="'This is x2'"    eval $3="'This is x3'"}
python- 如何return返回多个值
函数的return 语句只能返回一个值,可以是任何类型。因此,我们可以“返回一个 tuple类型,来间接达到返回多个值 ”。例:   x 除以 y 的余数与商的函数def    F1 ( x, y ):         a = x % y         b = (x-a) / y         return ( a,b )     # 也可以写作 return a, b(c, d )= F1(...
shell中的自定义函数,返回值
shell中的自定义函数 直接看截图和代码吧,一目了然! #!/bin/bash #如下语句会报错,因为在调用test1函数之前要先声明test1函数 #也就是说,函数的调用语句要放在函数的声明的后面(调用函数语句的位置要放在函数声明语句的位置的后面) #test1 20 30 function test1() { echo $1和$2 return $...
linux shell 中函数的返回值问题
linux shell中函数返回值的问题
linux中如何利用Python来调用shell命令及其运行shell脚本
在linux操作系统中,如何利用Python调用shell命令 首先介绍一下python命令 利用python调用shell的方法很多 1】os.system(command) 结果:  执行的运行command命令,加上command命令执行完毕后的退出状态。 使用: import os os.system(command) 例如  os.system('ls') 和os.sys...
【python】python执行shell命令或脚本
system() 其中最后一个0是这个命令的返回值,为0表示命令执行成功。使用system无法将执行的结果保存起来。 popen() 获取命令执行的结果,但是没有命令的执行状态,这样可以将获取的结果保存起来放到list中。 commands 可以很方便的取得命令的输出(包括标准和错误输出)和执行状态位。 commands.getoutput('ls')这个方...
关于shell 中return用法解释(转)
1、return命令会使得一个函数返回.return命令会返回一个单一的数字参数, 而这个数字参数在调用这个函数的脚本中是可见的.如果没有指定返回参数,return在默认情况下会返回上一次命令的返回代码。 2、了解一个概念:return value ﹗ 我们在 shell 下跑的每一个 command 或 function ,在结束的时候都会传回父行程一个值,称为 return value 。 在 shell command line 中可用 $? 这个变量得到最"新"的一个 return value
java调用shell脚本
java调用shell脚本java调用shell脚本java调用shell脚本java调用shell脚本java调用shell脚本java调用shell脚本
利用python执行shell脚本 并动态传参 及subprocess基本使用
最近工作需求中 有遇到这个情况  在web端获取配置文件内容 及 往shell 脚本中动态传入参数执行shell脚本这个有多种方法   最后还是选择了subprocess这个python标准库 subprocess这个模块可以非常方便的启动一个子进程,并且控制其输入和输出Class Popen(args,bufsize = 0,executable=None,            stdin =...
python 返回多个值
def test(num):     a=[]     b=[]     a.append(num)     b.append(num)     return a,b print test(1) ([1], [1])
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 java学习return python调用深度学习