作者shiyeh (shiyeh)
看板Python
标题[问题] 要怎麽读取环境变数?
时间Thu Jun 29 14:49:17 2017
例如我现在有个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?
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 175.180.105.193
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1498718959.A.177.html
※ 编辑: shiyeh (175.180.105.193), 06/29/2017 14:55:33
1F:推 s06yji3: source env.sh 试试看? 06/29 14:59
2F:→ uranusjr: Shell script 执行是在自己的 shell 里, 不会影响外环境 06/29 15:19
3F:→ shiyeh: source ./env.sh 也不行XD 06/29 15:19
4F:→ uranusjr: 试你的 env.sh 需求最好的解法可能不太一样 06/29 15:28
5F:→ uranusjr: source 是 Bash builtin function, 不能当程式执行 06/29 15:29
7F:推 s06yji3: 感谢指正 06/29 17:38