美文网首页
Python与 Linux 系统变量的交互

Python与 Linux 系统变量的交互

作者: hqyang | 来源:发表于2017-04-17 10:20 被阅读84次

问题来源

python 下执行先 source first.sh ,再执行 second.sh

first.sh 内容

export abc=def
# echo abc=bef >>/etc/profile

second.sh 内容

echo $abc
# 希望输出 def

python 代码

scrpitPopen=subprocess.Popen('source first.sh',executable="/bin/bash",shell=True)
scrpitPopen.communicate()
scrpitPopen=subprocess.Popen('source second.sh',executable="/bin/bash",shell=True)
scrpitPopen.communicate()

原本我以为通过第一句话export abc=def就可以了,结果不如所愿, 原因如下

在shell中执行程序时,shell会提供一组环境变量。export可新增,修改或删除环境变量,供后续执行的程序使用。export的效力仅及于该次登陆操作。

然后我就想到了第二行话,echo abc=bef >>/etc/profile,然后执行source /etc/profile, 结果还是不行,查资料的结果是,平时在 shell 操作的时候, shell 登录时会载入系统变量,但是Popen不会, Popen 有一个参数 env= 用来添加环境变量.

最后解决办法也简单,把 source /etc/profile 这句话 加到 second.sh 第一行即可.

相关文章

  • Python与 Linux 系统变量的交互

    问题来源 python 下执行先 source first.sh ,再执行 second.sh first.sh ...

  • Python 初级速学-环境以及运行脚本

    1.交互式编程 交互式编程不需要创建脚本文件。 Linux系统 Linux系统上只需要在命令行中输入 Python...

  • os和sys模块区别

    os模块负责程序与操作系统的交互,提供了访问操作系统底层的接口; sys模块负责程序与python解释器的交互,提...

  • python基础

    查看更多见: 脚本运行 Windows 下需将python加入的系统变量中; Linux 下需添加头部 循环 fo...

  • Linux 系统管理技巧

    常用操作 linux 系统日常管理 系统环境变量与个人环境变量的配置文件 /etc/profile:这个文件预设了...

  • python OS 简单操作命令

    OS模块-操作系统(Operating System) python中的OS模块可以操作操作系统,与操作系统交互....

  • LINUX系统调用

    系统调用是用户程序和linux内核交互的接口,linux的系统调用有下面三种方式: int 80 在x86与x86...

  • Linux 终端美化 - Oh My Zsh

    [TOC] 前言 在类 UNIX 系统(比如 Linux,Mac)环境中,我们常常在终端中输入命令与系统进行交互,...

  • 操控数据库

    python 命令:只是进入交互式环境python manage.py shell:进入交互式环境,设置好环境变量...

  • Python路径配置

    Python.exe 在 高级系统设置 > 高级 > 环境变量 > 系统变量 > Path 中 添加Python安...

网友评论

      本文标题:Python与 Linux 系统变量的交互

      本文链接:https://www.haomeiwen.com/subject/hjazattx.html