我有一个看起来像这样的脚本:
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
?