簡體   English   中英

通過python中的調用腳本訪問導出的變量

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM