Ich möchte mehrere Shell-Befehle nacheinander ausführen. Die Befehle werden von einem Remote-Gerät über den Socket empfangen. Was ich tun muss, ist eine Shell zu erstellen, die remote zugänglich ist. Mit subprocess.Popen
kann ich Befehle ausführen und Ausgabe erhalten. Aber wenn ich cd MyDIR
und dann ls -l
ausführen möchte. Wenn ich es als 2 Codezeilen ausführe, erhalte ich eine Dateiauflistung des übergeordneten Verzeichnisses statt des Verzeichnisses, in das ich mich eingewählt habe. Die Verwendung von cd MyDIR && ls -l
ergibt das erforderliche Ergebnis. Wenn ich die Kommunikationsmethode verwende, bekomme ich kein Ergebnis und auch die Standardeingabe wird geschlossen. Kann mir jemand mit einem Code helfen?Python - Mehrere Shell-Befehle nacheinander ausführen
bearbeiten
Die hier Interacting with bash from python gegebene Lösung löst nicht mein Problem, wie ich die Schale so lange aktiv, wie möglich und so viel halten will, wie gebraucht. Der Versuch, die Lösung auf dieser Seite gibt eine Meldung, die IO operation on closed file.
Mögliche Duplikat von [Interagieren mit bash von Python] (http hilft: // Stackoverflow. com/questions/9673730/interacting-with-bash-from-python) –
@PatrickHaugh Ja, es sieht aus wie ein Duplikat, aber ich möchte den Fehler 'IO-Operation bei geschlossener Datei' lösen. Ich möchte die Kommunikation aktiv halten. –
Sieht aus wie es einfacher gemacht werden kann, wenn Sie mit bash hören. Nur 'nc -k -l 4444 | Bash'. – Raz