一、python脚本

1、情况1:正常return

文件名test1.py

#无参数有返回值的函数
def Have_return():return 55if __name__ == '__main__':Have_return()

2、情况2:使用sys

文件名test1.py

```bash
import sys
#无参数有返回值的函数
def Have_return():return 'abs hkd'#sys.exit(55)if __name__ == '__main__':#Have_return()#或者res = Have_return()sys.exit(res)

3、情况3:不return而是print

文件名test1.py

#无参数有返回值的函数
def Have_return():print("abs hkd")if __name__ == '__main__':Have_return()

二、shell脚本调用python脚本

1、情况1下,python 文件名调用
文件名test.sh

#! /bin/bash
path=pwd
file_path=$path/test1.py
res=`python3 $file_path`
echo $res
#echo $@  #或者

结果如下:shell没有接收到返回值

2、情况1下,使用python -c 命令调用

#! /bin/bash
path=`pwd`
#file_path=$path/test1.py
cd $path
res=`python3 -c 'import test1; test1.Have_return()`
echo $res

结果如下:shell没有接收到返回值

3、在情况2下,使用以上两种方式都可在控制台打印

但是,这个返回值不能重定向到文件和进行管道操作,可能是因为sys.exit()的原因,只在调用并退出的时候打印在控制台

4、在情况3下,正确的调用方式

python中使用print而不使用return,shell中正常调用,就能接收到print内容重定向到文件和使用管道命令

三、shell传参给python脚本

1、python脚本

文件名test2.py
i

mport argparse
parser = argparse.ArgumentParser() ## 新建参数解释器对象
parser.add_argument('--count',type=int) ## 添加参数,注明参数类型
parser.add_argument('--name') ## 添加参数
args = parser.parse_args()### 参数赋值,也可以通过终端赋值
def Introduce(count, name):print(count,name)if __name__ == '__main__':Introduce(args.count,args.name) ## 带参数

2、shell脚本

文件名test.sh

#! /bin/bash
path=`pwd`
file_path=$path/test2.py
res=`python3 $file_path $@`
echo $res

3、调用命令

bash ./test.sh --count=12 --name=david
结果如下:

shell传参python脚本和获取返回值的探索方式相关推荐

  1. 使用java运行Python脚本并获取返回值

    java运行Python脚本并获取返回值 java运行Python脚本并获取返回值 使用runtime类实现在java中运行Python脚本,话不多说,直接上代码 java运行Python脚本并获取返 ...

  2. python 调用控制台并获取返回结果_Java调用Python脚本并获取返回值

    在Java程序中有时需要调用Python的程序,这时可以使用一般的PyFunction来调用python的函数并获得返回值,但是采用这种方法有可能出现一些莫名其妙的错误,比如ImportError.在 ...

  3. bat调用python脚本并获取返回值_python生成bat脚本,并且执行bat脚本

    # -*- coding: UTF-8 -*- # 命名方式为表名_操作_字段 import os import tempfile import connectDB from controller i ...

  4. java 调用linux 脚本并获取返回值

    大家好,我是烤鸭: 今天分享下java 调用 shell脚本 并获取返回值. 代码实践 String cmd = "df -h"; StringBuffer sb = new St ...

  5. Python基础day04【函数(定义与调用、文档说明、传参函数、全局变量、返回值、嵌套调用)】

    视频.源码.课件.软件.笔记:超全面Python基础入门教程[十天课程]博客笔记汇总表[黑马程序员] Python基础day04[字典]    目录 3.函数 函数的定义和调用 函数定义 PEP8规范 ...

  6. python函数调用位置_python函数定义,调用,传参,位置参数及关键字参数,返回值

    使用函数是真正开始编程的第一步,函数y=f(x)我们并不陌生,对x进行一顿操作得到一个值y.给不同的x,进行相同的操作,得到相应的y值. 程序层面函数是执行特定任务的一段代码,将一段代码定义成函数并为 ...

  7. shell中循环执行某个进程获取返回值,并循环执行直到函数出错

    测试进程test的代码 #include <stdio.h>int main(){return 0; } 编译出测试程序: gcc test.c -o test 测试脚本 #!/bin/s ...

  8. [Python陷阱]os.system调用shell脚本获取返回值

    当前有shell个脚本/tmp/test.sh,内容如下: #!/bin/bash exit 11 使用Python的os.system调用,获取返回值是: >>> ret=os.s ...

  9. python获取返回值_python 调用 shell ,获取返回值和返回信息

    网络上有各种方案解决python调用shell的解决方案,但是没有一个完美的,以下是本人整理的一个方案,比较完美地解决了同时解决获取返回值和返回信息. def run_linux_cmd_quiet( ...

最新文章

  1. C语言实现汉诺塔问题
  2. MongoDB-GRIDFS大文件系统
  3. iOS开发-NSArray
  4. html中绑定一个字段,四、在html中绑定数据
  5. 计算机技术朝着那个方面发展,目前,信息系统在朝着哪个方面发展?
  6. UVA 3485 Bridge
  7. 深入浅出分布式文件系统MogileFS集群
  8. 在谈数据治理和数字化的时候,别忘了数据标准
  9. 第十七篇 --ANDROID DisplayManager 服务解析一
  10. 删除Win7通知区域的无效图标
  11. 【图像增强】基于matlab对数图像处理模型+去雾+暗原色先验图像增强【含Matlab源码 1012期】
  12. Grails Quartz插件,定时调度任务
  13. Oracle EBS数据定义移植工具:Xdf(XML Object Description File)
  14. Unity鼠标控制相机上下左右环视360度旋转(Quaternion.AngleAxis)
  15. 【食品加工技术】第四章 饮料生产技术 笔记
  16. 通过注册表设置默认打印机的方法
  17. 学号20189220 2018-2019-2 《密码与安全新技术专题》第四周作业
  18. NLP基础入门:Word2Vec模型
  19. mysql 删除时间一个星期_2020春招必备:MySQL(20)与Redis(20),不看答案能答对几道?
  20. 【Linux 网络】IP校验和计算相关

热门文章

  1. 基于wincc的虚拟电梯设计_基于西门予WINCC+flexible和STEP+7的虚拟电梯设计
  2. 活动星投票教师创课大赛网络评选微信的投票方式线上免费投票
  3. QTabBar关闭按钮图标
  4. HttpClient Post x-www-form-urlencoded Or json
  5. 《活着》读后感 -- 一个活在悲剧中的人为什么要继续活下去
  6. div内图片和文字水平垂直居中且在屏幕任意位置
  7. java的join方法_Javajoin方法详解
  8. css字体溢出省略号处理(3种)
  9. Camera对焦模式
  10. 面向对象编程思想--继承