Я предполагаю, что невозможно перейти на код для поддержки вывода на стандартный вывод. Возможно, потому что код отправляет дополнительную информацию (ведение журнала) на стандартный вывод.
Вы можете использовать перенаправление ввода-вывода или подстановку процесса, чтобы исключить необходимость сохранять / вызывать данные из файла. Аргумент конструкции «> (cat)» указывает bash создать канал, между «tool» и «cat» (который просто напечатает файл).
# PREFERRED
# IO Redirection, using extra fd (#3).
var=$(./f.sh -o /dev/fd/3 3>&1 1>/dev/null)
# Use process substitution, use extra 'cat' process.
var=$(tool -o >(cat) >/dev/null)
1-е решение более эффективно (без дополнительной работы кота ...). 2-е решение немного более компактно.