* [devel] Код возврата при конвейере
@ 2005-03-06 11:15 Vitaly Lipatov
2005-03-06 17:14 ` Dmitry V. Levin
0 siblings, 1 reply; 13+ messages in thread
From: Vitaly Lipatov @ 2005-03-06 11:15 UTC (permalink / raw)
To: ALT Devel discussion list
Не могу понять, как узнать код возврата
программы при такой конструкции:
программа | tea
Подскажите пожалуйста.
--
Lav
Виталий Липатов
Санкт-Петербург
GNU! ALT Linux Team! LaTeX! LyX!
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [devel] Код возврата при конвейере
2005-03-06 11:15 [devel] Код возврата при конвейере Vitaly Lipatov
@ 2005-03-06 17:14 ` Dmitry V. Levin
2005-03-06 17:39 ` Alexey Rusakov
2005-03-06 17:53 ` Alexey I. Froloff
0 siblings, 2 replies; 13+ messages in thread
From: Dmitry V. Levin @ 2005-03-06 17:14 UTC (permalink / raw)
To: ALT Devel discussion list
[-- Attachment #1: Type: text/plain, Size: 452 bytes --]
Hi,
On Sun, Mar 06, 2005 at 02:15:40PM +0300, Vitaly Lipatov wrote:
> Не могу понять, как узнать код возврата
> программы при такой конструкции:
>
> программа | tea
>
> Подскажите пожалуйста.
Кодом возврата pipeline'а является код возврата последней команды,
поэтому узнать код возврата других команд можно, например, так:
rm -f failed
(программа || touch failed) | tea
if [ -f failed ]; then
обработка ошибки
fi
--
ldv
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [devel] Код возврата при конвейере
2005-03-06 17:14 ` Dmitry V. Levin
@ 2005-03-06 17:39 ` Alexey Rusakov
2005-03-06 17:53 ` Alexey I. Froloff
1 sibling, 0 replies; 13+ messages in thread
From: Alexey Rusakov @ 2005-03-06 17:39 UTC (permalink / raw)
To: ALT Devel discussion list
Dmitry V. Levin wrote:
>Hi,
>
>On Sun, Mar 06, 2005 at 02:15:40PM +0300, Vitaly Lipatov wrote:
>
>
>>Не могу понять, как узнать код возврата
>>программы при такой конструкции:
>>
>>программа | tea
>>
>>Подскажите пожалуйста.
>>
>>
>
>Кодом возврата pipeline'а является код возврата последней команды,
>поэтому узнать код возврата других команд можно, например, так:
>
>rm -f failed
>(программа || touch failed) | tea
>if [ -f failed ]; then
> обработка ошибки
>fi
>
>
При условии, что не требуется вывод tea писать в переменную, можно написать
RETVAL=`{ (программа ; echo $? >&5) | tea } 5>&1`
if [ $RETVAL ... ]; then
...
fi
Более громоздко, зато не требует наличия файловой системы вообще :)
--
Alexey "Ktirf" Rusakov
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [devel] Код возврата при конвейере
2005-03-06 17:14 ` Dmitry V. Levin
2005-03-06 17:39 ` Alexey Rusakov
@ 2005-03-06 17:53 ` Alexey I. Froloff
2005-03-07 12:13 ` Alexey Rusakov
2005-03-10 6:18 ` Alexey Tourbin
1 sibling, 2 replies; 13+ messages in thread
From: Alexey I. Froloff @ 2005-03-06 17:53 UTC (permalink / raw)
To: ALT Devel discussion list
[-- Attachment #1: Type: text/plain, Size: 546 bytes --]
* Dmitry V. Levin <ldv@> [050306 20:18]:
> Кодом возврата pipeline'а является код возврата последней команды,
> поэтому узнать код возврата других команд можно, например, так:
Интересно, почему у zsh на этот счёт более другое мнение:
raorn@hell:pts/15 ~ $ true | false | true | false | true | false | true
zsh: 6133 done true |
zsh: 6134 exit 1 false |
zsh: 6135 done true |
zsh: 6136 exit 1 false |
zsh: 6137 done true |
zsh: 6138 exit 1 false
raorn@hell:pts/15 ~ $
--
Regards,
Sir Raorn.
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [devel] Код возврата при конвейере
2005-03-06 17:53 ` Alexey I. Froloff
@ 2005-03-07 12:13 ` Alexey Rusakov
2005-03-08 16:18 ` Alexey I. Froloff
2005-03-10 6:18 ` Alexey Tourbin
1 sibling, 1 reply; 13+ messages in thread
From: Alexey Rusakov @ 2005-03-07 12:13 UTC (permalink / raw)
To: ALT Devel discussion list
Alexey I. Froloff wrote:
>* Dmitry V. Levin <ldv@> [050306 20:18]:
>
>
>>Кодом возврата pipeline'а является код возврата последней команды,
>>поэтому узнать код возврата других команд можно, например, так:
>>
>>
>Интересно, почему у zsh на этот счёт более другое мнение:
>
>raorn@hell:pts/15 ~ $ true | false | true | false | true | false | true
>zsh: 6133 done true |
>zsh: 6134 exit 1 false |
>zsh: 6135 done true |
>zsh: 6136 exit 1 false |
>zsh: 6137 done true |
>zsh: 6138 exit 1 false
>raorn@hell:pts/15 ~ $
>
>
Как вы этого добились?
[ktirf@twilight ~/RPM]$ true|false|true|false|true|false|true
[ktirf@twilight ~/RPM]$ echo $SHELL
/bin/zsh
[ktirf@twilight ~/RPM]$ echo $ZSH_VERSION
4.2.1
[ktirf@twilight ~/RPM]$
--
Alexey "Ktirf" Rusakov
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [devel] Код возврата при конвейере
2005-03-07 12:13 ` Alexey Rusakov
@ 2005-03-08 16:18 ` Alexey I. Froloff
2005-03-08 17:34 ` Alexey Rusakov
0 siblings, 1 reply; 13+ messages in thread
From: Alexey I. Froloff @ 2005-03-08 16:18 UTC (permalink / raw)
To: ALT Devel discussion list
[-- Attachment #1: Type: text/plain, Size: 243 bytes --]
* Alexey Rusakov <ktirf@> [050307 15:22]:
> >Интересно, почему у zsh на этот счёт более другое мнение:
> Как вы этого добились?
Наверно так:
$ setopt | grep exit
printexitvalue
$ echo $ZSH_VERSION
4.2.1
--
Regards,
Sir Raorn.
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [devel] Код возврата при конвейере
2005-03-08 16:18 ` Alexey I. Froloff
@ 2005-03-08 17:34 ` Alexey Rusakov
2005-03-08 20:03 ` Alexey I. Froloff
0 siblings, 1 reply; 13+ messages in thread
From: Alexey Rusakov @ 2005-03-08 17:34 UTC (permalink / raw)
To: ALT Devel discussion list
Alexey I. Froloff wrote:
>* Alexey Rusakov <ktirf@> [050307 15:22]:
>
>
>>>Интересно, почему у zsh на этот счёт более другое мнение:
>>>
>>>
>>Как вы этого добились?
>>
>>
>Наверно так:
>
>$ setopt | grep exit
>printexitvalue
>$ echo $ZSH_VERSION
>4.2.1
>
>
А вы случайно не знаете, zsh этот самый exitvalue не может ли отдать в
несколько менее prettyprint'нутом виде?
--
Alexey "Ktirf" Rusakov
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [devel] Код возврата при конвейере
2005-03-08 17:34 ` Alexey Rusakov
@ 2005-03-08 20:03 ` Alexey I. Froloff
2005-03-08 20:09 ` Alexey I. Froloff
2005-03-08 21:51 ` [devel] " Dmitry V. Levin
0 siblings, 2 replies; 13+ messages in thread
From: Alexey I. Froloff @ 2005-03-08 20:03 UTC (permalink / raw)
To: ALT Devel discussion list
[-- Attachment #1: Type: text/plain, Size: 645 bytes --]
* Alexey Rusakov <ktirf@> [050308 20:36]:
> А вы случайно не знаете, zsh этот самый exitvalue не может ли отдать в
> несколько менее prettyprint'нутом виде?
info zsh -> Parameters -> Parameters Set By The Shell:
pipestatus <S> <Z>
An array containing the exit values returned by all commands in the
last pipeline.
$ true | false | true | false | true | false | true
zsh: 19417 done true |
zsh: 19418 exit 1 false |
zsh: 19419 done true |
zsh: 19420 exit 1 false |
zsh: 19421 done true |
zsh: 19422 exit 1 false
$ echo $pipestatus
0 1 0 1 0 1 0
--
Regards,
Sir Raorn.
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [devel] Код возврата при конвейере
2005-03-08 20:03 ` Alexey I. Froloff
@ 2005-03-08 20:09 ` Alexey I. Froloff
2005-03-08 20:35 ` [devel] [JT] " Alexey Rusakov
2005-03-08 21:51 ` [devel] " Dmitry V. Levin
1 sibling, 1 reply; 13+ messages in thread
From: Alexey I. Froloff @ 2005-03-08 20:09 UTC (permalink / raw)
To: ALT Devel discussion list
[-- Attachment #1: Type: text/plain, Size: 497 bytes --]
* Alexey I. Froloff <raorn@> [050308 23:09]:
> > А вы случайно не знаете, zsh этот самый exitvalue не может ли отдать в
> > несколько менее prettyprint'нутом виде?
> info zsh -> Parameters -> Parameters Set By The Shell:
man bash:
PIPESTATUS
An array variable (see Arrays below) containing a list of exit
status values from the processes in the most-recently-executed
foreground pipeline (which may contain only a single command).
--
Regards,
Sir Raorn.
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [devel] [JT] Код возврата при конвейере
2005-03-08 20:09 ` Alexey I. Froloff
@ 2005-03-08 20:35 ` Alexey Rusakov
0 siblings, 0 replies; 13+ messages in thread
From: Alexey Rusakov @ 2005-03-08 20:35 UTC (permalink / raw)
To: ALT Devel discussion list
Alexey I. Froloff wrote:
>* Alexey I. Froloff <raorn@> [050308 23:09]:
>
>
>>>А вы случайно не знаете, zsh этот самый exitvalue не может ли отдать в
>>>несколько менее prettyprint'нутом виде?
>>>
>>>
>>info zsh -> Parameters -> Parameters Set By The Shell:
>>
>>
>man bash:
>
>PIPESTATUS
> An array variable (see Arrays below) containing a list of exit
> status values from the processes in the most-recently-executed
> foreground pipeline (which may contain only a single command).
>
>
Век живи - век учись читать маны...
--
Alexey "Ktirf" Rusakov
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [devel] Код возврата при конвейере
2005-03-08 20:03 ` Alexey I. Froloff
2005-03-08 20:09 ` Alexey I. Froloff
@ 2005-03-08 21:51 ` Dmitry V. Levin
2005-03-09 9:13 ` [devel] " Michael Shigorin
1 sibling, 1 reply; 13+ messages in thread
From: Dmitry V. Levin @ 2005-03-08 21:51 UTC (permalink / raw)
To: ALT Devel discussion list
[-- Attachment #1: Type: text/plain, Size: 919 bytes --]
On Tue, Mar 08, 2005 at 11:03:36PM +0300, Alexey I. Froloff wrote:
> * Alexey Rusakov <ktirf@> [050308 20:36]:
> > А вы случайно не знаете, zsh этот самый exitvalue не может ли отдать в
> > несколько менее prettyprint'нутом виде?
> info zsh -> Parameters -> Parameters Set By The Shell:
>
> pipestatus <S> <Z>
> An array containing the exit values returned by all commands in the
> last pipeline.
>
> $ true | false | true | false | true | false | true
> zsh: 19417 done true |
> zsh: 19418 exit 1 false |
> zsh: 19419 done true |
> zsh: 19420 exit 1 false |
> zsh: 19421 done true |
> zsh: 19422 exit 1 false
> $ echo $pipestatus
> 0 1 0 1 0 1 0
- это zsh-specific.
$ true | false | true | false | true | false | true; echo ${PIPESTATUS[*]}
0 1 0 1 0 1 0
- это bash-specific.
Обычный SUSv3 shell этого может и не уметь.
--
ldv
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 13+ messages in thread
* [devel] Re: Код возврата при конвейере
2005-03-08 21:51 ` [devel] " Dmitry V. Levin
@ 2005-03-09 9:13 ` Michael Shigorin
0 siblings, 0 replies; 13+ messages in thread
From: Michael Shigorin @ 2005-03-09 9:13 UTC (permalink / raw)
To: ALT Devel discussion list
On Wed, Mar 09, 2005 at 12:51:03AM +0300, Dmitry V. Levin wrote:
> > $ echo $pipestatus
> > 0 1 0 1 0 1 0
> - это zsh-specific.
Ну, скрипт ведь тоже может быть #!/bin/zsh :)
--
---- WBR, Michael Shigorin <mike@altlinux.ru>
------ Linux.Kiev http://www.linux.kiev.ua/
^ permalink raw reply [flat|nested] 13+ messages in thread
* [devel] Re: Код возврата при конвейере
2005-03-06 17:53 ` Alexey I. Froloff
2005-03-07 12:13 ` Alexey Rusakov
@ 2005-03-10 6:18 ` Alexey Tourbin
1 sibling, 0 replies; 13+ messages in thread
From: Alexey Tourbin @ 2005-03-10 6:18 UTC (permalink / raw)
To: ALT Devel discussion list
[-- Attachment #1: Type: text/plain, Size: 533 bytes --]
On Sun, Mar 06, 2005 at 08:53:25PM +0300, Alexey I. Froloff wrote:
> Интересно, почему у zsh на этот счёт более другое мнение:
>
> raorn@hell:pts/15 ~ $ true | false | true | false | true | false | true
> zsh: 6133 done true |
> zsh: 6134 exit 1 false |
> zsh: 6135 done true |
> zsh: 6136 exit 1 false |
> zsh: 6137 done true |
> zsh: 6138 exit 1 false
> raorn@hell:pts/15 ~ $
$ true | false | true | false | true | false | true
$ echo $?
0
$
> --
> Regards,
> Sir Raorn.
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2005-03-10 6:18 UTC | newest]
Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-03-06 11:15 [devel] Код возврата при конвейере Vitaly Lipatov
2005-03-06 17:14 ` Dmitry V. Levin
2005-03-06 17:39 ` Alexey Rusakov
2005-03-06 17:53 ` Alexey I. Froloff
2005-03-07 12:13 ` Alexey Rusakov
2005-03-08 16:18 ` Alexey I. Froloff
2005-03-08 17:34 ` Alexey Rusakov
2005-03-08 20:03 ` Alexey I. Froloff
2005-03-08 20:09 ` Alexey I. Froloff
2005-03-08 20:35 ` [devel] [JT] " Alexey Rusakov
2005-03-08 21:51 ` [devel] " Dmitry V. Levin
2005-03-09 9:13 ` [devel] " Michael Shigorin
2005-03-10 6:18 ` Alexey Tourbin
ALT Linux Team development discussions
This inbox may be cloned and mirrored by anyone:
git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
public-inbox-index devel
Example config snippet for mirrors.
Newsgroup available over NNTP:
nntp://lore.altlinux.org/org.altlinux.lists.devel
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git