Перенаправить sterr в subshell на стандартный вывод в текущей оболочке в bash-скрипте

У меня есть подоболочка, выполняющая функцию:

local thing=$( doFunc )

doFunc отправляет вывод журнала в stderr (2) и 'thingприсваивается doFuncвыход на stdout (1).

Как я могу запустить эту строку, но распечатать stderr от скорлупы до stdout в текущей оболочке?

1 ответ

Решение

Вы можете сначала сделать копию стандартного вывода на другом FD, а затем перенаправить на него как

exec 3>&1
local thing=$(doFunc 2>&3)
Другие вопросы по тегам