shell传参python脚本和获取返回值的探索方式
一、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脚本和获取返回值的探索方式相关推荐
- 使用java运行Python脚本并获取返回值
java运行Python脚本并获取返回值 java运行Python脚本并获取返回值 使用runtime类实现在java中运行Python脚本,话不多说,直接上代码 java运行Python脚本并获取返 ...
- python 调用控制台并获取返回结果_Java调用Python脚本并获取返回值
在Java程序中有时需要调用Python的程序,这时可以使用一般的PyFunction来调用python的函数并获得返回值,但是采用这种方法有可能出现一些莫名其妙的错误,比如ImportError.在 ...
- bat调用python脚本并获取返回值_python生成bat脚本,并且执行bat脚本
# -*- coding: UTF-8 -*- # 命名方式为表名_操作_字段 import os import tempfile import connectDB from controller i ...
- java 调用linux 脚本并获取返回值
大家好,我是烤鸭: 今天分享下java 调用 shell脚本 并获取返回值. 代码实践 String cmd = "df -h"; StringBuffer sb = new St ...
- Python基础day04【函数(定义与调用、文档说明、传参函数、全局变量、返回值、嵌套调用)】
视频.源码.课件.软件.笔记:超全面Python基础入门教程[十天课程]博客笔记汇总表[黑马程序员] Python基础day04[字典] 目录 3.函数 函数的定义和调用 函数定义 PEP8规范 ...
- python函数调用位置_python函数定义,调用,传参,位置参数及关键字参数,返回值
使用函数是真正开始编程的第一步,函数y=f(x)我们并不陌生,对x进行一顿操作得到一个值y.给不同的x,进行相同的操作,得到相应的y值. 程序层面函数是执行特定任务的一段代码,将一段代码定义成函数并为 ...
- shell中循环执行某个进程获取返回值,并循环执行直到函数出错
测试进程test的代码 #include <stdio.h>int main(){return 0; } 编译出测试程序: gcc test.c -o test 测试脚本 #!/bin/s ...
- [Python陷阱]os.system调用shell脚本获取返回值
当前有shell个脚本/tmp/test.sh,内容如下: #!/bin/bash exit 11 使用Python的os.system调用,获取返回值是: >>> ret=os.s ...
- python获取返回值_python 调用 shell ,获取返回值和返回信息
网络上有各种方案解决python调用shell的解决方案,但是没有一个完美的,以下是本人整理的一个方案,比较完美地解决了同时解决获取返回值和返回信息. def run_linux_cmd_quiet( ...
最新文章
- C语言实现汉诺塔问题
- MongoDB-GRIDFS大文件系统
- iOS开发-NSArray
- html中绑定一个字段,四、在html中绑定数据
- 计算机技术朝着那个方面发展,目前,信息系统在朝着哪个方面发展?
- UVA 3485 Bridge
- 深入浅出分布式文件系统MogileFS集群
- 在谈数据治理和数字化的时候,别忘了数据标准
- 第十七篇 --ANDROID DisplayManager 服务解析一
- 删除Win7通知区域的无效图标
- 【图像增强】基于matlab对数图像处理模型+去雾+暗原色先验图像增强【含Matlab源码 1012期】
- Grails Quartz插件,定时调度任务
- Oracle EBS数据定义移植工具:Xdf(XML Object Description File)
- Unity鼠标控制相机上下左右环视360度旋转(Quaternion.AngleAxis)
- 【食品加工技术】第四章 饮料生产技术 笔记
- 通过注册表设置默认打印机的方法
- 学号20189220 2018-2019-2 《密码与安全新技术专题》第四周作业
- NLP基础入门:Word2Vec模型
- mysql 删除时间一个星期_2020春招必备:MySQL(20)与Redis(20),不看答案能答对几道?
- 【Linux 网络】IP校验和计算相关