Mam skrypt, który wygląda mniej więcej tak:
export foo=/tmp/foo
export bar=/tmp/bar
Za każdym razem, gdy buduję, uruchamiam 'source init_env' (gdzie init_env to powyższy skrypt), aby ustawić kilka zmiennych.
Aby osiągnąć to samo w Pythonie, uruchomiłem ten kod,
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)
Ale potem ktoś zdecydował, że fajnie byłoby dodać do pliku linię podobną do poniższej init_env
:
export PATH="/foo/bar:/bar/foo:$PATH"
Oczywiście mój skrypt w Pythonie się rozpadł. Mógłbym zmodyfikować skrypt Pythona, aby obsłużyć ten wiersz, ale potem po prostu zepsuje się, gdy ktoś wymyśli nową funkcję do użycia w init_env
pliku.
Pytanie brzmi, czy istnieje łatwy sposób na uruchomienie polecenia Bash i pozwolenie mu zmodyfikować moje os.environ
?