Spezifische Verwendung von „shell=True“ im Unterprozess
Bei Verwendung des Unterprozessmoduls dient das Argument „shell=True“ einem bestimmten Zweck Zweck. Während die beiden folgenden Codeausschnitte denselben Prozess ausführen, unterscheiden sie sich in ihrem Ansatz:
callProcess = subprocess.Popen(['ls', '-l'], shell=True) callProcess = subprocess.Popen(['ls', '-l']) # without shell
Wann ist „shell=True“ zu verwenden?
Aufrufen von „shell=“. „True“ bedeutet, dass der Befehl über einen Shell-Interpreter ausgeführt wird, was die Erweiterung von Umgebungsvariablen und Datei-Globs ermöglicht. Dieser Ansatz birgt jedoch potenzielle Risiken:
Bevorzugter Ansatz
Im Allgemeinen ist es ratsam, die Verwendung zu vermeiden 'shell=True'. Hier sind einige Gründe:
Zusammenfassung
Sofern Sie keinen besonderen Bedarf an Shell-Erweiterung haben, wird empfohlen, „shell=False“ für Unterprozessaufrufe festzulegen. Dadurch wird sichergestellt, dass der Prozess direkt ausgeführt wird, ohne auf einen Dolmetscher angewiesen zu sein oder unnötige Risiken mit sich zu bringen.
Das obige ist der detaillierte Inhalt vonWann sollte ich „shell=True' mit dem „subprocess'-Modul verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!