Я знаю, что подоболочки подавляют свой стандартный вывод из вывода вызывающей стороны:
a=$(echo 123)
echo a:$a
Это выводит, как и ожидалось:
a:123
Но почему stderr не подавляется, поскольку он находится в подоболочке?
a=$(>&2 echo 123)
Ожидаемый результат:
(ничего такого)
Фактический результат:
123
Вот тест, в котором stderr должен перенаправляться на стандартный вывод и записываться в переменную a
:
a=$(>&2 echo 123 2>&1)
echo a:$a
Ожидаемый результат:
a:123
Фактический результат:
123
a: