URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 7859
[ Назад ]

Исходное сообщение
"конвееры и статус возврата"

Отправлено sokoloff , 26-Янв-09 14:20 
Есть конвеер из комманд, ну например:
  command1 | tee -a logfile.log

Статус возврата всей этой конструкции это статус возвращаемый tee (0 даже если command1 вернула ошибку). А вот как можно узнать стстус возвращаемый command1?


Содержание

Сообщения в этом обсуждении
"конвееры и статус возврата"
Отправлено Andrey Mitrofanov , 26-Янв-09 14:25 
На _bash_-е:
command1 >( tee -a logfile.log )

"конвееры и статус возврата"
Отправлено sokoloff , 26-Янв-09 15:14 
>На _bash_-е:
>command1 >( tee -a logfile.log )

Спасибо, Андрей.
Если command1 не принимает параметры то все работает.
Но такая конструкция уже не проходит:
cp ./.mc ./qqq   >( tee -a logfile.log ) ; echo $?

надо как-то сгруппировать команду, отделить параметры от перенаправления. Это возможно?


"конвееры и статус возврата"
Отправлено Andrey Mitrofanov , 26-Янв-09 15:57 
>>На _bash_-е:
>>command1 >( tee -a logfile.log )

Действительно, так _неправиьлно_. "|tee" соответствует--

command1 > >( tee -a logfile.log )

>cp ./.mc ./qqq   >( tee -a logfile.log ) ; echo $?


"конвееры и статус возврата"
Отправлено sokoloff , 26-Янв-09 16:46 
>>>На _bash_-е:
>>>command1 >( tee -a logfile.log )
>
>Действительно, так _неправиьлно_. "|tee" соответствует--
>
>command1 > >( tee -a logfile.log )
>

Спасибо, так работает
cp -rv ./.mc ./qqq  >  >( tee -a logfile.log ) ; echo $?


"конвееры и статус возврата"
Отправлено phpcoder , 26-Янв-09 14:47 
>Есть конвеер из комманд, ну например:
>  command1 | tee -a logfile.log
>
>Статус возврата всей этой конструкции это статус возвращаемый tee (0 даже если
>command1 вернула ошибку). А вот как можно узнать стстус возвращаемый command1?

http://gazette.lrn.ru/rus/articles/abs-guide/c3242.html
И там читать про $PIPESTATUS


"конвееры и статус возврата"
Отправлено sokoloff , 26-Янв-09 15:15 
>>Есть конвеер из комманд, ну например:
>>  command1 | tee -a logfile.log
>>
>>Статус возврата всей этой конструкции это статус возвращаемый tee (0 даже если
>>command1 вернула ошибку). А вот как можно узнать стстус возвращаемый command1?
>
>http://gazette.lrn.ru/rus/articles/abs-guide/c3242.html
>И там читать про $PIPESTATUS

Спасибо, это подходит, еще нашел "set -o pipefail"


"конвееры и статус возврата"
Отправлено const86 , 27-Янв-09 09:07 
>Спасибо, это подходит, еще нашел "set -o pipefail"

О, спасибо за pipefail :)