看板 Python 關於我們 聯絡資訊
例如我現在有個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
uranusjr: http://d.pr/n/qziNs8+ 這是一個方法 06/29 15:30
s06yji3: 感謝指正 06/29 17:38