Ich möchte die folgenden Zeilen von Linux bash
Befehle in einem Python-Programm ausführen.Wie werden mehrzeilige Bash-Befehle in Python ausgeführt?
tail /var/log/omxlog | stdbuf -o0 grep player_new | while read i
do
Values=$(omxd S | awk -F/ '{print $NF}')
x1="${Values}"
x7="${x1##*_}"
x8="${x7%.*}"
echo ${x8}
done
Ich weiß, dass für einen einzeiligen Befehl, können wir die folgende Syntax verwenden:
subprocess.call(['my','command'])
Aber, wie kann ich subprocess.call
verwenden, wenn es mehrere Befehle in mehrere Zeilen sind!?
Ich weiß nicht, dass dies eine richtige Lösung ist, aber in der Bash können Sie mehrere Zeilen mit halb ersetzen -Kolonnen. Zum Beispiel 'tail/var/log/omxlog | stdbuf -o0 grep plater_new | während ich lese; do Werte = $ (omxd S | awk -F/'{print $ NF}'); x1 = "$ {Werte}"; ... 'und so weiter. Es ist sicherlich nicht gut lesbar, aber es sollte funktionieren. Gibt es einen Grund, warum Sie kein Bash-Skript ausführen können? – Guest
Warum können Sie es nicht stattdessen in ein Skript einfügen? – Inian
es gibt einige gute Sachen in diesem Beitrag über die Verwendung von subprocess.pipe http://StackOverflow.com/A/13332300/1113788 eine andere Option könnte sein, um die Python-Fabric-Bibliothek, die verschiedene Optionen zum Ausführen von lokalen und Remote-Code – davidejones