weixin_42340144
柳罐罐
采纳率30.8%
2018-06-21 03:00 阅读 7.1k

shell脚本怎么调用python的return值

10

我在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值有什么好的方法吗

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

2条回答 默认 最新

  • 已采纳
    oyljerry oyljerry 2018-06-21 03:13
  • qq_42203433 qq_42203433 2018-06-21 13:39

    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

    点赞 评论 复制链接分享

相关推荐