shell中调用python脚本

原创 2016年08月30日 13:43:43

shell中调用python脚本

在sh脚本中可通过python命令调用py脚本,同样可以获取py脚本的返回码与输出

py脚本的sys.exit([arg])

python doc中的内容

Exit from Python. This is implemented by raising the SystemExit exception, so cleanup actions specified by finally clauses of try statements are honored, and it is possible to intercept the exit attempt at an outer level. The optional argument arg can be an integer giving the exit status (defaulting to zero), or another type of object. If it is an integer, zero is considered “successful termination” and any nonzero value is considered “abnormal termination” by shells and the like. Most systems require it to be in the range 0-127, and produce undefined results otherwise. Some systems have a convention for assigning specific meanings to specific exit codes, but these are generally underdeveloped; Unix programs generally use 2 for command line syntax errors and 1 for all other kind of errors. If another type of object is passed, None is equivalent to passing zero, and any other object is printed to sys.stderr and results in an exit code of 1. In particular, sys.exit(“some error message”) is a quick way to exit a program when an error occurs.

  • 直接调用exit(),注意是个函数要加括号,无参数默认返回码0,表示脚本运行成功
  • 参数可以是整数也可以是其他对象,若是其他对象测返回码为1,如错误信息字符串,同时字符串内容也会输出

    # test.py
    print 'test'
    exit('error message')
    
    # 运行脚本
    python test.py
    echo $?
    
    输出
    test
    error message
    1
    
  • 获取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
    

shell调用python脚本,并且向python脚本传递参数

shell中: python test.py $para1 $para2 python中: def main($canshu1, $canshu2)   ..... main(sys.a...
  • ly890700
  • ly890700
  • 2017年02月17日 14:14
  • 4688

使用shell调用python中的函数

最近遇到一个需求,需要通过shell调用python中的一个函数,发现其实也挺简单的: python脚本如下: test.py: import ConfigParser c...
  • tanlon_0308
  • tanlon_0308
  • 2014年10月24日 10:34
  • 5032

Linux shell脚本执行Python脚本

今天想做个定时器,用shell脚本执行Python脚本 shell 里面是这样写python main.py 之后就报错误  :No module named 看了一篇博客解决了问题:  使用P...
  • qq_22672291
  • qq_22672291
  • 2017年04月17日 16:14
  • 3447

python学习之--调用shell脚本

python调用Shell脚本,有很多种方法,下面给出了三个python中执行shell命令的方法 第一种方案:os.system os.system返回脚本的退出状态码 现有一个shell脚本1.s...
  • viease
  • viease
  • 2015年07月10日 15:56
  • 14892

shell脚本调用python脚本,并传参

  • 2017年09月04日 10:28
  • 1KB
  • 下载

python和shell之间变量的相互调用

python -> shell: 1.环境变量 [python] view plaincopy import os   var=12...
  • blackmanren
  • blackmanren
  • 2013年10月21日 09:19
  • 1045

JAVA调用Python及Shell

工作日志--java
  • u013361107
  • u013361107
  • 2017年08月09日 09:07
  • 143

Shell执行python程序的缓冲区问题

环境:Linux 一段执行时间很长的Python程序在linux后台执行,把结果输出到某文件:cmd='python '$1' '$2' '$3' '$5' '$4 RESULT=eval $cm...
  • wangshuang1631
  • wangshuang1631
  • 2016年12月27日 17:12
  • 1052

python shell 运行.py文件

python中想在shell中调用一个test.py文件里面的方法。 test.py文件里面的内容如下: def ListFea():       print "this is my...
  • luke2834
  • luke2834
  • 2016年05月29日 12:37
  • 5324

python执行shell命令的几种方法

目前我使用到的python中执行cmd的方式有三种: 1. 使用os.system("cmd") 这是最简单的一种方法,特点是执行的时候程序会打出cmd在Linux上执行的信息。使用前需要...
  • zyaiwmy
  • zyaiwmy
  • 2017年01月11日 10:27
  • 1973
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:shell中调用python脚本
举报原因:
原因补充:

(最多只允许输入30个字)