我有一个剧本是这样的:
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
?