Bash 'source' in Python emulieren

Ich habe ein Skript, das ungefähr so aussieht:

export foo=/tmp/foo                                          
export bar=/tmp/bar

Jede Zeit, die 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 dannjeman entschied, dass es schön wäre, eine Zeile wie die folgende zum @ hinzuzufüginit_env Datei

export PATH="/foo/bar:/bar/foo:$PATH"     

Offensichtlich ist mein Python-Skript auseinandergefallen. Ich könnte das Python-Skript ändern, um diese Zeile zu verarbeiten, aber es wird später nur unterbrochen, wennjeman wartet mit einer neuen Funktion auf, die im @ verwendet werden kaninit_env Datei

Die Frage ist, ob es eine einfache Möglichkeit gibt, einen Bash-Befehl auszuführen und mein @ ändern zu lasseos.environ?

Antworten auf die Frage(12)

Ihre Antwort auf die Frage