繁体   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