У мене є сценарій, який виглядає приблизно так:
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?