Se eseguo echo a; echo b
in bash, il risultato sarà che entrambi i comandi vengono eseguiti. Tuttavia, se utilizzo il sottoprocesso, viene eseguito il primo comando, che stampa tutto il resto della riga. Il codice seguente echos a; echo b
anziché a b
, come ottengo che esegua entrambi i comandi?eseguendo più comandi bash con sottoprocesso
import subprocess, shlex
def subprocess_cmd(command):
process = subprocess.Popen(shlex.split(command), stdout=subprocess.PIPE)
proc_stdout = process.communicate()[0].strip()
print proc_stdout
subprocess_cmd("echo a; echo b")
correlato: Ecco [come eseguire più comandi di shell (ed eventualmente catturare la loro produzione) simultaneamente] (http://stackoverflow.com/a/23616229/4279) – jfs