Цель состоит в том, чтобы команда запускалась в оболочке bash с Popen, а затем выходные данные этой команды передаются в переменную, но Popen должен подождать, пока команда завершит свою работу, прежде чем двигаться дальше, чего не происходит.
Я пытался использовать call вместо Popen, но call не выводит ничего, кроме кода выхода, что не идеально.
Я тоже пытался использовать wait (), но получаю ошибку.
var1 = Popen(["command | grep 'stuff' | cut -d 'delimiter' -f3"],
shell=True, stdout=PIPE,
universal_newlines=True).communicate()[0].rstrip()
var2 = Popen(["command | grep 'stuff' | cut -d 'delimiter' -f1"],
shell=True, stdout=PIPE,
universal_newlines=True).communicate()[0].rstrip()
print(var1 + var2)
Python правильно печатает var1, но не var2, что является None, потому что он не был назначен ничем, так как команда не выполнялась или не было времени для завершения.
Выполнение команды var2 непосредственно на терминале, точно так же, как в программе на python, дает желаемые результаты, но когда python пытается запустить его, он просто пропускает его и печатает var1 и var2, но отображается только строка var1, var2 полностью игнорироваться.