[问题] 要怎么读取环境变量?

楼主: shiyeh (shiyeh)   2017-06-29 14:49:17
例如我现在有个shell script,叫做 env.sh
###==============
#!/bin/sh
export env1="123"
export env2="456"
###==============
要透过python去拿env1, env2
我用这样:
###=========================
#!/usr/bin/python
import os
import subprocess
subprocess.Popen('./env.sh', shell=True)
print(os.environ['env1'])
###==========================
会得到 KeyError: 'env1'
我自己是觉得问题应该出在subprocess?
我不能分两个动作做?
先透过subprocess去执行shell script,
再透过os.environ去拿env ?
何解QQ?
作者: s06yji3 (阿南)   2017-06-29 14:59:00
source env.sh 试试看?
作者: uranusjr (←這人是超級笨蛋)   2017-06-29 15:19:00
Shell script 执行是在自己的 shell 里, 不会影响外环境
楼主: shiyeh (shiyeh)   2017-06-29 15:19:00
source ./env.sh 也不行XD
作者: uranusjr (←這人是超級笨蛋)   2017-06-29 15:28:00
试你的 env.sh 需求最好的解法可能不太一样source 是 Bash builtin function, 不能当程式执行http://d.pr/n/qziNs8+ 这是一个方法
作者: s06yji3 (阿南)   2017-06-29 17:38:00
感谢指正

Links booklink

Contact Us: admin [ a t ] ucptt.com