将环境传递给父

时间:2017-02-03 05:29:32

标签: python shell environment-variables

所以我知道subprocess如何运作并使用它很多,但我遇到了一个奇怪的问题。我需要执行一些环境变量的导出。原因是某些程序(黑盒)执行的程序似乎在子shell中运行,因此它无法访问环境变量,但它可以访问我的所有文件。

我无法对环境变量进行硬编码,因此我希望source.包含export命令的文件。但是,如果我在子流程中存档source.,则不会对其父流程产生任何影响。在这种情况下,除了subprocess之外我还需要一些能够执行shell命令而不创建子进程的函数(如果存在)。另一个问题是子进程没有适当的权限来读取文件。

通过os复制环境变量也是不可能的。

除了subprocess之外还有什么吗?或者还有其他一些解决方法吗?

1 个答案:

答案 0 :(得分:1)

恕我直言,最简单的解决方案是创建一个新的shell脚本(让我们称之为run_black_box.sh)来源安装脚本(我们假设它被命名为setup.sh)来初始化环境,然后调用black_box程序

以下是run_black_box.sh的可能内容:

#/bin/bash
source setup.sh
black_box

您可以将run_black_box.sh传递给subprocess以执行。