Comment faire pour exécuter plusieurs commandes de façon synchrone à partir d'un sous-processus.Popen commande?

Est-il possible d'exécuter un nombre arbitraire de commandes en séquence à l'aide de la même sous-processus de commande?

J'ai besoin de chaque commande à attendre pour la précédente à remplir avant d'exécuter et j'ai besoin de tous pour être exécutées dans la même session/shell. J'ai aussi besoin de ce travail dans la version 2.6 de Python, Python 3.5. J'ai aussi besoin de la sous-processus de commande sous Linux, Windows et macOS (c'est pourquoi je suis juste en utilisant echo commandes comme exemples ici).

Voir non-travail code ci-dessous:

import sys
import subprocess

cmds = ['echo start', 'echo mid', 'echo end']

p = subprocess.Popen(cmd=tuple([item for item in cmds]),
                     stdout=subprocess.PIPE, stderr=subprocess.STDOUT)

for line in iter(p.stdout.readline, b''):
    sys.stdout.flush()
    print(">>> " + line.rstrip())

Si ce n'est pas possible, quelle approche doit-je prendre pour l'exécution de mes commandes de synchronisation de séquence dans la même session/shell?

Pourquoi pas à l'aide de trois Popen dans la séquence?
Comment sur l'exécution de cmd1, cmd2, cmd3 en exécution séparée de Popen?
J'ai édité ma question car il implique un nombre arbitraire de commandes.
si j'exécute un Popen par cmd, ils seront exécutés dans leurs propres séances. J'ai besoin de tous pour être exécutées dans la même session. Je suis en train de modifier ma question d'inclure cette info maintenant.
Double Possible de l'exécution de plusieurs commandes bash avec des sous-processus

OriginalL'auteur fredrik | 2016-09-27