在Python中模拟Bash“源”
我有一个看起来像这样的脚本: export foo=/tmp/foo export bar=/tmp/bar 每次构建时,我都会运行“ source init_env”(其中init_env是上面的脚本)来设置一些变量。 为了在Python中完成同样的工作,我运行了这段代码, reg = re.compile('export (?P<name>\w+)(\=(?P<value>.+))*') for line in open(file): m = reg.match(line) if m: name = m.group('name') value = '' if m.group('value'): value = m.group('value') os.putenv(name, value) 但是后来有人决定将以下行添加到init_env文件中会很好: export PATH="/foo/bar:/bar/foo:$PATH" 显然我的Python脚本崩溃了。我可以修改Python脚本来处理这一行,但是稍后当有人想出要在init_env文件中使用的新功能时,它将中断。 问题是,是否有一种简单的方法来运行Bash命令并让其修改我的os.environ?