![](/img/trans.png)
[英]Source shell script and access exported variables from os.environ
[英]Access exported variables by a called script from python
盡管有很多關於在python中訪問/設置環境變量的問題,但我找不到適合我的特定方案的答案。
我有一個shell腳本,當被調用時它會導出一堆env變量,這些變量將在以后使用。
當您需要這些變量在當前會話中可用時,您應該
. ./script_exp_var.sh
那說
export MYVAR = MYVAL
然后,如果您運行python,則可以使用os.environ.get('MYVAR')
。
我的問題是如何從python調用腳本,然后必須訪問稱為剛剛導出的腳本的env變量。 可能嗎?如果可以,怎么辦? 注意:我知道我可以使用os.environ["MYVAR"] = MYVAL
從python設置環境os.environ["MYVAR"] = MYVAL
但是我想在我的./script_exp_var.sh
使用現有邏輯,因為它會導出許多變量。 同樣,確保先執行腳本然后執行python也不是我的選擇。
你不能 環境變量是從父級復制到子級的,而永遠不會復制回父級。
如果您從python執行shell腳本,則將在該shell進程(子進程)中設置環境變量,而python將不會意識到它們。
您可以編寫一個解析器來從python讀取shell命令,但這需要大量工作。
最好使用其中的設置編寫一個shell腳本,然后將python程序作為該腳本的子級來調用。
另外,編寫一個shell腳本,將這些值回顯給python,可以使用管道將其拾取。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.