【发布时间】:2018-08-18 10:54:11
【问题描述】:
我有一个如下所示的 bash 脚本:
python myPythonScript.py
python myOtherScript.py $VarFromFirstScript
而myPythonScript.py 看起来像这样:
print("Running some code...")
VarFromFirstScript = someFunc()
print("Now I do other stuff")
问题是,我如何将变量 VarFromFirstScript 返回到名为 myPythonScript.py 的 bash 脚本。
我尝试了os.environ['VarFromFirstScript'] = VarFromFirstScript,但这不起作用(我认为这意味着 python 环境与调用 bash 脚本的环境不同)。
【问题讨论】:
-
不能更改其他进程的环境变量。您只能在启动进程时影响它们,因此不能选择环境变量。这留下了各种其他 IPC 方式,但最自然的一种可能是写信给
stdout。 -
所以鉴于 python 脚本有一堆打印语句,我只需要在 bash 中解析所有这些语句以获得我想要的
export语句? -
为什么它有所有这些
print()调用(不是语句,不是在 Python 3 中!)?我想这是为了记录,对吧?在这种情况下,首先,使用日志库,然后您也可以使用它来记录到文件。其次,不要使用 stdout 而是使用 stderr,它通常用于非有效负载、非正式输出。
标签: python bash environment-variables