Wenn ich versuche, ein Shell-Skript mit subprocess.call()
oder os.system()
auszuführen, wird das Skript ausgeführt, aber auch das Python-Skript wird beendet und alles, was nach dem Aufruf geschrieben wird, wird nie ausgeführt. Ich habe versucht, diesen Aufruf aus einer Bibliothek zu importieren und auszuführen oder aus einem separaten Python-Skript mit execfile()
auszuführen, aber das gleiche ist auch dort passiert. Ist etwas mit meinem System nicht in Ordnung, oder soll es so sein? Wenn das letztere, dann wie soll ich das stoppen und mein Python-Skript laufen lassen, nachdem ich diesen Subprozess/Systemaufruf gemacht habe?Wie Subprozess beenden mein Skript beenden?
[email protected]:~/Desktop$ python
Python 2.7.2+ (default, Oct 4 2011, 20:03:08)
[GCC 4.6.1] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import subprocess
>>> subprocess.call(["sh","test.sh"])
[email protected]:~/Desktop$
Dies ist das Shell-Skript:
export <SOMEPATHNAME>=/some/path/here
exec $SHELL -i
Ich denke, es ist die exec $SHELL -i
ist, die ausgeführt alle Programme auf diesem speziellen Shell verursacht zu beenden. Aber ich weiß nicht, welche andere Alternative ich habe. Die export
funktioniert nicht, wenn ich es nicht verwende. Derzeit exportiert der Pfad, den ich exportieren möchte, aber der Python-Prozess wird damit beendet.
Vielen Dank im Voraus!
Zeigen Sie Ihr Skript. Sie werden wahrscheinlich keine Ausnahme bemerken. – marue
SHOW ... CODE. Nur Sie kennen den Kontext dieser Frage. Der Rest von uns weiß nicht, was Sie tatsächlich versuchen und was das Ergebnis ist. – jdi
Entschuldigung für die Verzögerung beim Hinzufügen. Ich habe den Code bereits hinzugefügt. –