python 和shell 变量互相传递

news2024/10/5 15:38:21

嗨喽~大家好呀,这里是魔王呐 ❤ ~!

python更多源码/资料/解答/教程等 点击此处跳转文末名片免费获取

主要介绍python和shell变量互相传递方法,使用了环境变量、管道等方法。

python -> shell:

1.环境变量
import os 
var=123或var='123'
os.environ['var']=str(var)  #environ的键值必须是字符串  

os.system('echo $var')  
2.字符串连接
import os 
path='/root/a.txt'
var=[1] 
var='bash'
os.system('echo ' + path)                  #注意echo后有空格 
os.system('echo ' + str(var[0])) 

os.system('echo ' + var + ' /root/c.sh') #注意echo后和/root前有空格   
3.通过管道
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:926207505
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
import os 
var='123'

os.popen('wc -c', 'w').write(var)  
4.通过文件
output = open('/tmp/mytxt', 'w') 
output.write(S)      #把字符串S写入文件 
output.writelines(L) #将列表L中所有的行字符串写到文件中 

output.close()  
5.通过重定向标准备输出
buf = open('/root/a.txt', 'w') 
print >> buf, '123\n', 'abc'
=================================

或者:

print >> open('/root/a.txt', 'w'), '123\n', 'abc' #写入或生成文件 

print >> open('/root/a.txt', 'a'), '123\n', 'abc' #追加  

shell -> python:

1.管道
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:926207505
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
import os 
var=os.popen('echo -n 123').read( ) 

print var  
2.commands
import commands 
var=commands.getoutput('echo abc')       #输出结果  

var=commands.getstatusoutput('echo abc') #退出状态和输出结果
3.文件
input = open('/tmp/mytxt', 'r') 
S = input.read( )      #把整个文件读到一个字符串中 
S = input.readline( )  #读下一行(越过行结束标志) 

L = input.readlines( ) #读取整个文件到一个行字符串的列表中  

shell脚本中执行python脚本并接收其返回值的例子

在hello.py中通过返回值 让shell脚本通过参数来判断,

hello.py这样写

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:926207505
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
import sys
def main():
    try:
        print "hello"
        sys.exit(0)
    except:
        sys.exit(1)
 
if __name__=='__main__':

    main()

shell 脚本改为

python hello.py
if [ $?==0 ];then
    exit
else
        python world.py       

fi

就可以判断了

尾语

最后感谢你观看我的文章呐~本次航班到这里就结束啦 🛬

希望本篇文章有对你带来帮助 🎉,有学习到一点知识~

躲起来的星星🍥也在努力发光,你也要努力加油(让我们一起努力叭)。

最后,宣传一下呀~👇👇👇更多源码、资料、素材、解答、交流皆点击下方名片获取呀👇👇

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1371830.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【手搓深度学习算法】用线性回归预测波士顿房价

线性回归 线性回归是一种监督学习方法,用于建立因变量与一个或多个自变量之间的关系。线性回归的目标是找到一条直线,使得所有数据点到这条直线的距离之和最小。 线性回归的基本形式如下: y β 0 β 1 x 1 β 2 x 2 . . . β n x n ϵ…

Linux学习之网络编程(纯理论)

写在前面 刚刚更新完Linux系统编程,特别推荐大家去看的Linux系统编程,总共44个小时,老师讲的非常好,我是十天肝完的,每天大概看20集,每天还要以写blog的形式来写笔记来总结一下,虽然这十天有点…

printk的使用与理解

文章目录 一、理清printk二、printk的使用三、printk的打印级别1、基本解释2、详细解释3、如何修改console_loglevel、default_message_loglevel、minimum_console_loglevel、default_console_loglevel的值 四、printk的输出地方五、其它 一、理清printk printk如何使用&#…

C++ 实现十大排序算法

教你手撕排序,这里有一个概念就是稳定排序。假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中,r[i]r[j],且r[i]在r[j]之前&#…

vim升级和配置

vim升级和配置 1、背景2、环境说明3、操作3.1 升级VIM3.2 配置VIM3.2.1、编辑vimrc文件3.2.2、安装插件 1、背景 日常工作跟linux系统打交道比较多,目前主要用到的是Cenots7和Ubuntu18这两个版本的linux系统,其中Centos7主要是服务器端,Ubun…

图神经网络|5.消息传递的计算方法 6.多层GNN的作用

5.消息传递的计算方法 边的存放方式 注意,在实际的边的实现方式中,并不是以邻接矩阵来进行实现的,这是因为在图的更新中,用邻接矩阵进行更新所占用的时间开销相对大,二是因为领接矩阵占用的空间大(N方&am…

java数据结构与算法刷题-----LeetCode343. 整数拆分(TODO)

java数据结构与算法刷题目录(剑指Offer、LeetCode、ACM)-----主目录-----持续更新(进不去说明我没写完):https://blog.csdn.net/grd_java/article/details/123063846 很多人觉得动态规划很难,但它就是固定套路而已。其实动态规划只…

Apache JMeter 5.5: 新手指南

如何获取并运行 JMeter 首先,要使用 JMeter,你需要从官网获取软件包。前往 Apache JMeter 的官方页面,然后下载所 需的压缩文件。 配置和启动 JMeter 获取了 JMeter 后,由于它是无需安装即可使用的工具,直接解压下载…

Linux Capabilities 进阶实战

目录 1. 快速回顾 2. 为可执行文件分配 capabilities 3. 构建半特权环境 4. 容器与 capabilities Linux Capabilities 基础概念与基本使用 上一篇学习了LinuxCapabilities的基础知识和基本使用,因为后面需要学习Docker的逃逸,理解Linux Capabilitie…

多模态+SNN个人学习历程和心得

祖传开头 这次想写一个一直深藏心中的研究方向,那就是多模态方向。其实当初在实验室那会儿,最先接触的就是多模态的工作,因此这是我科研之路的起点。只不过,后来经历了一些波折,导致个人没有往这个方向深挖&#xff0…

终端输入命令无法自动换行,且命令会覆盖掉前面的内容

目录 问题描述原因分析:解决方案:补充内容: 问题描述 进入到容器内部之后,在终端输入命令,当命令长一些的时候,会出现命令无法自动换行,而且 会覆盖掉之前的命令,继续写虽然不可以正…

基于大数据机器学习TF-IDF 算法+SnowNLP的智慧旅游数据分析可视化推荐系统

文章目录 基于大数据机器学习TF-IDF 算法SnowNLP的智慧旅游数据分析可视化推荐系统一、项目概述二、机器学习TF-IDF 算法什么是TF-IDF?TF-IDF介绍名词解释和数学算法 三、SnowNLP四、数据爬虫分析五、项目架构思维导图六、项目UI系统注册登录界面各省份热门城市分析…

Buzz 离线音频转字幕工具(完全免费,无需登录)

关于 Buzz Buzz 是一款可以自动识别语音为文本字幕的软件工具,基于 OpenAI 开源的 Whisper 自动语音识别模型,可以批量将音频或者是视频中的内容自动转化为带有时间的字幕,速度非常快,是一款能极大提高效率的生产力小工具。 Bu…

排队免单?买东西花了钱还能拿回来?——工会排队模式

随着互联网和电子商务的迅猛发展,消费者的购物需求和期望也在不断升级。为了满足这一需求,工会排队模式作为一种创新消费体验模式应运而生。 工会排队模式是一种颠覆传统的电商模式,它通过向消费者返还现金的方式,重新定义了购物体…

使用Java版工程行业管理系统源码,提升工程项目的综合管理能力

工程项目管理涉及众多环节和角色,如何实现高效协同和信息共享是关键。本文将介绍一个采用先进技术框架的Java版工程项目管理系统,该系统支持前后端分离,功能全面,可满足不同角色的需求。从项目进度图表到施工地图,再到…

MySQL版本说明、版本发布日志

参考: 版本说明:https://blogs.oracle.com/mysql/post/introducing-mysql-innovation-and-longterm-support-lts-versions 官网文档 :https://dev.mysql.com/doc/ 发布日志: https://dev.mysql.com/doc/relnotes/mysql/8.0/en/ …

Spring Security介绍

一、Spring Security: 1、简介:Spring Security 是一个非常流行和成功的 Java 应用开发框架。Spring Security 基于 Spring 框架,提供了一套 Web 应用安全性的完整解决方案。一般来说,Web 应用的安全性包括用户认证(A…

FineBI实战项目一(2):案例架构说明及数据准备

1 系统架构 基于MySQL搭建数据仓库基于Kettle进行数据处理帆软FineBI基于MySQL搭建的数据仓库进行数据分析 2 数据流程图 通过Kettle将MySQL业务系统数据库中,将数据抽取出来,然后装载到MySQL数据仓库中。编写SQL脚本,对MySQL数据仓库中的数…

Spring 如何解决循环依赖问题

Spring对循环依赖的处理有三种情况: ①构造器的循环依赖:这种依赖spring是处理不了的,直 接抛出BeanCurrentlylnCreationException异常。 ②单例模式下的setter循环依赖:通过“三级缓存”处理循环依赖。 ③非单例循环依赖&#xf…

【小沐学CAD】开源Assimp库导入三维模型(C++、Python)

文章目录 1、简介2、下载编译3、代码测试3.1 C3.2 pyassimp(Python) 结语 1、简介 https://github.com/assimp/assimp Open Asset Import Library 是一个库,用于将各种 3D 文件格式加载为共享的内存格式。它支持 40 多种用于导入的文件格式和…