簡體   English   中英

從 Python 創建環境變量在父 bash 腳本中不可用

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

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