Состояние канала после подстановки команды

Я ' Я хочу отправить результат ряда команд в переменную:

variable=$(a | few | commands)

Однако подстановка команды сбрасывает PIPESTATUS , поэтому я не могу проверить, где что-то пошло не так, постфактум. Одно из решений - использовать mktemp и временно поместить туда результат:

variable_file=$(mktemp) || exit 1
a | few | commands > $variable_file
exit_codes="${PIPESTATUS[*]}"
variable=$(<$variable_file)

Есть ли более элегантное решение?

9
задан l0b0 10 December 2010 в 15:20
поделиться