еременная @bash захватывает stderr и stdout отдельно или получает выходное значение [duplicate]

На этот вопрос уже есть ответ:

Захватить stdout и stderr в разные переменные 13 ответов

Мне нужно зафиксировать вывод и ошибку команды в моем bash-скрипте и узнать, была ли команда выполнена успешно.

В данный момент я снимаю как:

output=$(mycommand 2>&1)

Затем мне нужно проверить значение выхода mycommand. Если это не удалось, мне нужно что-то сделать с выводом, если команда выполнена успешно, мне не нужно трогать вывод.

Так как я фиксирую вывод, проверяю $? всегда равно 0, поскольку bash удалось записать вывод в переменную.

Это очень чувствительный ко времени сценарий, поэтому мы стараемся избегать более медленных решений, таких как вывод в файл и повторное его чтение.

Если бы я мог записать stdout в одну переменную и stderr в другую, это решило бы мою проблему, потому что я мог просто проверить, была ли переменная ошибки пустой или нет.

Благодарность

Ответы на вопрос(2)

Ваш ответ на вопрос