Возможно ли выполнить произвольное количество команд в последовательности, используя ту же команду подпроцесса?
Мне нужно, чтобы каждая команда дождалась, пока предыдущая завершится до ее выполнения, и мне нужно, чтобы все они были выполнены в том же сеансе/оболочке. Мне также нужно это для работы в Python 2.6, Python 3.5. Мне также нужна команда subprocess для работы в Linux, Windows и macOS (вот почему я просто использую команды echo
в качестве примеров здесь).
Смотрите неработающий код ниже:
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())
Если это невозможно, какой подход следует принять для выполнения моих команд в синхронной последовательности внутри одного сеанса/оболочки?