В моем скрипте мне нужно работать со статусом завершения команды non-last конвейера:
do_real_work 2>&1 | tee real_work.log
К моему удивлению, $?
содержит код выходаиз tee
.Действительно, следующая команда:
false 2>&1 | tee /dev/null ; echo $?
выводит 0. Сюрприз, потому что (почти) эквивалент csh
false |& tee /dev/null ; echo $status
печатает 1.
Как мне получитькод выхода команды non-last самого последнего конвейера?