Я пытаюсь выполнить несколько строк bash
в Python 3 и проверить статус каждой строки отдельно.
Сначала я попытался использовать gestatusoutput
из subprocess
, но каждая строка запускается в отдельном процессе, который не связывается с другими (для простоты данный MWE состоит из установки переменной, но что Я намерен сделать в моем действительном коде более сложную задачу - и я знаю о os.environ
для этого очень конкретного примера):
from subprocess import getstatusoutput as cmd
stat, out = cmd("export TEST=1")
stat, out = cmd("echo $TEST")
поэтому вернет:
>>> print(out)
(0, "")
Затем я попробовал следующее:
cmdline = """export TEST=1
echo $TEST"""
stat, out = cmd(cmdline)
Это работает, но вынуждает меня анализировать выходные данные, особенно если я хочу проверить состояние первой команды (если echo
работает, состояние возвращается cmd
равно 0
, что бы ни происходило раньше), то есть не очень крепкий.
Я видел некоторые вещи, используя Popen
(все еще с subprocess
), но не смог использовать его эффективно.
Буду признателен за любую помощь!