[英]Creating an environment variable from Python not available in parent bash script
我正在從我的 bash 腳本中調用 Python 腳本,並且我需要來自所述 Python 腳本計算的結果。 我試圖通過以多種方式設置環境變量來做到這一點,一種是這個問題的答案,另一種是這樣的:
table_name = get_table_name(feed)
subprocess.Popen(['export', 'TABLE_NAME='+table_name], shell=True)
我從我的 bash 文件中調用 Python 腳本,如下所示:
./auto_load.py FEED-NAME 2017-09-07
echo "Table name is" ${TABLE_NAME}
由於環境變量是由 bash 腳本觸發的進程創建的,所以它不應該在 bash 腳本中可用嗎?
子進程不能改變其父進程的環境。 這是不可能的。
您可以通過讓 Python 腳本輸出表名並讓 Bash 腳本捕獲輸出來實現您想要的效果。
# Python
table_name = get_table_name(feed)
print(table_name)
# Bash
TABLE_NAME=$(./auto_load.py FEED-NAME 2017-09-07)
echo "Table name is $TABLE_NAME"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.