> Хочется узнать код выхода 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.


-- 
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]
Archive: http://lists.debian.org/[email protected]

Ответить