Ich habe ein Skript, das ungefähr so aussieht:
export foo=/tmp/foo
export bar=/tmp/bar
Jedes Mal, wenn ich baue, führe ich 'source init_env' aus (wobei init_env das obige Skript ist), um einige Variablen einzurichten.
Um dasselbe in Python zu erreichen, ließ ich diesen Code laufen,
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)
Aber dann entschied jemand , dass es schön wäre, der init_envDatei eine Zeile wie die folgende hinzuzufügen :
export PATH="/foo/bar:/bar/foo:$PATH"
Offensichtlich fiel mein Python-Skript auseinander. Ich könnte das Python-Skript ändern, um diese Zeile zu verarbeiten, aber es wird später unterbrochen, wenn jemand eine neue Funktion für die init_envDatei entwickelt.
Die Frage ist, ob es eine einfache Möglichkeit gibt, einen Bash-Befehl auszuführen und ihn ändern zu lassen os.environ.