[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: pipestatus в dash



> Хочется узнать код выхода cmd1 в такой связке:
> cmd1|cmd2

> В bash есть массив $PIPESTATUS. А как это делают в dash?

Этого нет в POSIX шеле.

Самое общее на все случаи жизни решение такое:
1) ставишь пакет pipestatus из моего репозитория, прописывая в
   sources.list (бинари есть только для Debian/Lenny/i386).
   Остальное придется скомпилировать.

     deb     http://mova.org/~cheusov/pub/debian       lenny    main
     deb-src http://mova.org/~cheusov/pub/debian       lenny    main

2) Где-нибудь в начале скрипта пишешь
    . pipestatus

3) Запускаешь pipe так:
   runpipe cmd1 '|' cmd2

4) Получаешь exit статусы чего-угодно.
   echo $exitstatus_1
   echo $exitstatus_2
   echo $exitstatus_all

5) Изучаешь пакет на предмет других фич pipestatus

6) Если нравится, проталкиваешь его в Дебиан ;-)

Сама библиотека собственно тоже моя, берется здесь
http://sf.net/projects/pipestatus.

-- 
Best regards, Aleksey Cheusov.


Reply to: