У меня есть script, который выглядит примерно так:
export foo=/tmp/foo
export bar=/tmp/bar
Каждый раз, когда я создаю, я запускаю "source init_env" (где init_env - это выше script), чтобы установить некоторые переменные.
Чтобы выполнить то же самое в 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 script развалился. Я мог бы изменить Python script, чтобы обработать эту строку, но потом он просто сломается позже, когда кто-то придумает новую функцию, которая будет использоваться в файле init_env
.
Вопрос в том, есть ли простой способ запустить команду Bash и изменить ее os.environ
?