Ich versuche, eine Reihe von Befehlen mit Pythons Subprozess-Modul auszuführen, aber ich muss Shell-Variablen mit dem Export vor dem Ausführen festlegen. Natürlich scheint die Shell nicht persistent zu sein, also wenn ich später einen Befehl ausführe, sind diese Shell-Variablen verloren.
Gibt es einen Weg, dies zu tun? Ich könnte einen / bin / sh-Prozess erstellen, aber wie würde ich die Exit-Codes der Befehle erhalten, die darunter laufen?
subprocess.Popen
verwendet ein optionales benanntes Argument env
, das ein Wörterbuch ist, das als Umgebung des Unterprozesses verwendet wird (was Sie als "Shell-Variablen" bezeichnen). Bereiten Sie ein Diktat so vor, wie Sie es benötigen (Sie können mit einer Kopie von os.environ
beginnen und diese nach Bedarf ändern) und an alle von Ihnen ausgeführten subprocess.Popen
-Aufrufe übergeben.
Tags und Links python shell variables subprocess persistent