Re: pipestatus в dash

2010-05-28 Пенетрантность Dmitry Semyonov
2010/5/26 Vladimir N. Indik wrote:

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

aptitude install moreutils
mispipe cmd1 cmd2

-- 
...Bye..Dmitry.


pipestatus в dash

2010-05-26 Пенетрантность Vladimir N. Indik
Хочется узнать код выхода cmd1 в такой связке:
cmd1|cmd2

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

Спасибо.


Re: pipestatus в dash

2010-05-26 Пенетрантность Dmitry Fedorov
2010/5/26 Vladimir N. Indik:
 Хочется узнать код выхода cmd1 в такой связке:
 cmd1|cmd2

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

Никак, это башизм.

Я пользуюсь вот таким извратом:

stat1=`mktemp /tmp/stat1.XX`
trap rm -f $stat1 EXIT

{ cmd1; echo rc=$?  $stat1; } | { cmd2 ...}

# и так для каждой команды в пайпе:
. $stat1
if test $rc -ne 0; then ругаемся; exit 1; fi


Re: pipestatus в dash

2010-05-26 Пенетрантность Aleksey Cheusov
 Хочется узнать код выхода cmd1 в такой связке:
 cmd1|cmd2

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

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

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

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

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 debian-russian-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/877hmqloii@asrock.chizhovka.net



Re: pipestatus в dash

2010-05-26 Пенетрантность Aleksey Cheusov
 2010/5/26 Vladimir N. Indik:
  Хочется узнать код выхода cmd1 в такой связке:
  cmd1|cmd2
 
  В bash есть массив $PIPESTATUS. А как это делают в dash?

 Никак,
Не надо ;-)

 это башизм.

 Я пользуюсь вот таким извратом:
См. мое соседнее письмо.

-- 
Best regards, Aleksey Cheusov.


-- 
To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/87vdaak9v9@asrock.chizhovka.net