[英]Inheritance of env variables in python
我需要檢索調用python程序的父進程(shell)的環境變量$PS1
。 $PS1
不屬於python進程內的os.environ
,而sys.ps1
存儲其自己的提示符。
我們如何從外殼程序將此變量傳遞給程序?
我從外殼程序使用python3 program.py
調用程序。
如果分配給$PS1
值在program.py
運行時不變,則最好的選擇是將其作為參數傳遞,並使用argparse在腳本中檢索它。 如果該值在運行時期間發生變化,則選項之一是將其存儲在某個臨時文件中並從那里讀取。
python腳本可以通過os.environ
訪問所有環境變量。 您的問題是PS1
不是環境變量,而只是外殼程序的局部變量。
這意味着外殼程序不會將其傳遞給環境中的子printenv
(您可以通過在外殼程序中鍵入env
或printenv
來控制它)。 因此,除非您在啟動Python之前將其手動放入環境中( export PS1
為sh或bash),否則無法在Python腳本中獲取它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.