作者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://www.ptt.cc/bbs/Python/M.1498718959.A.177.html
※ 編輯: shiyeh (175.180.105.193), 06/29/2017 14:55:33
推 s06yji3: source env.sh 試試看? 06/29 14:59
→ uranusjr: Shell script 執行是在自己的 shell 裡, 不會影響外環境 06/29 15:19
→ shiyeh: source ./env.sh 也不行XD 06/29 15:19
→ uranusjr: 試你的 env.sh 需求最好的解法可能不太一樣 06/29 15:28
→ uranusjr: source 是 Bash builtin function, 不能當程式執行 06/29 15:29
推 s06yji3: 感謝指正 06/29 17:38