【问题标题】:Access exported variables by a called script from python通过从 python 调用的脚本访问导出的变量
【发布时间】:2018-09-22 08:29:18
【问题描述】:

虽然有很多关于在 python 中访问/设置环境变量的问题,但我找不到我的特定场景的答案。

我有一个 shell 脚本,当调用它时,它会导出一组稍后使用的环境变量。

当您需要在当前会话中使用这些变量时,您会这样做

. ./script_exp_var.sh

确实如此,说

export MYVAR = MYVAL

如果你运行 python,你可以使用os.environ.get('MYVAR') 访问它。

我的问题是如何从 python 调用脚本,然后必须访问调用脚本刚刚导出的环境变量。有可能吗?如果有,怎么做? 注意:我知道我可以使用os.environ["MYVAR"] = MYVAL 从python 设置环境变量,但我想使用./script_exp_var.sh 中的现有逻辑,因为它导出了许多变量。 另外确保先执行脚本然后执行 python 也不是我的方案的选项。

【问题讨论】:

标签: python environment-variables


【解决方案1】:

你不能。环境变量从父级复制到子级,从不返回父级。

如果您从 python 执行 shell 脚本,那么环境变量将在该 shell 进程(子进程)中设置,python 将不知道它们。

可以编写一个解析器来从 python 读取 shell 命令,但工作量很大。

最好用其中的设置编写一个 shell 脚本,然后将 python 程序作为脚本的子程序调用。

或者,编写一个 shell 脚本,将值回显到 python,可以使用管道获取。

【讨论】:

    猜你喜欢
    • 2018-02-08
    • 2023-04-11
    • 2021-12-20
    • 1970-01-01
    • 2021-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多