Ich möchte Cygwin von Python ausführen und Cygwin-Befehle ausführen.Basic cygwin Befehle von Python Subprozess
Ich benutze Windows, also möchte ich Befehle in Cygwin nicht Cmd ausführen. Ich benutze Python 3.6.1.
Ich möchte nur wissen, wie grundlegende Befehle ausgeführt werden, damit ich von dort wie ls
arbeiten kann. Ich habe versucht:
subprocess.call("E:/cygwin/bin/bash.exe", "ls")
(so etwas, aber es funktioniert nicht)- die Lösung unten vorgeschlagen von @pstatix, die Popen() verwendet. Laufen stdin.close() nach stdin.write (b'ls') ergibt sich ein
/usr/bin/bash: line 1: ls: command not found
Fehler
ich in der Lage bin folgendes zu tun:
offen Cygwin:
subprocess.call("E:/cygwin/bin/bash.exe")
(run commmands auf Windows cmd:
subprocess.call("dir", shell=True)
)
Ist dies möglich, in dieser Form beim? Schließt Cygwin automatisch, wenn ich den nächsten Python-Befehl ausführe, oder muss ich vorher beenden?
Ich bin relativ neu dazu.
Sie haben noch nicht Ihre vollständige Reihe von Codezeilen gezeigt. Aktualisieren Sie Ihren Beitrag, um eine Reihe von Zeilen zu zeigen, die meiner Antwort ähneln. Wir müssen alles sehen, um zu helfen. – pstatix
Ihr Code und die obigen Zeilen sind buchstäblich alles, was ich habe. Ich versuche herauszufinden, wie das funktioniert, damit ich darauf aufbauen und andere Befehle ausführen/schreiben kann. Ich habe wirklich nichts anderes im Moment. – sandboxj
Sie sollten in der Lage sein, eine Menge Befehle direkt auszuführen, ohne bash ausführen zu müssen und in seine stdin schreiben zu müssen. Die Unix-Kommandozeile besteht meist aus kleinen Programmen wie '/ bin/ls', was für Sie wahrscheinlich' E:/cygwin/bin/ls.exe' ist. – eryksun