[問題] 要怎麼讀取環境變數?

作者: 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