shell-script-pt
[Top][All Lists]
Advanced

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

Re: [shell-script] Dúvida com PIPESTATUS


From: Guilherme Gall
Subject: Re: [shell-script] Dúvida com PIPESTATUS
Date: Sat, 5 Apr 2014 01:49:41 -0300

Olá Paulo,

É isso mesmo que ocorre. O array PIPESTATUS foi atualizado para
guardar o código de retorno de 'echo ${PIPESTATUS[@]}'.

Não faz muito sentido perguntar se PIPESTATUS guarda os códigos de
retorno "mesmo sem ser em pipe" porque um pipeline pode ser composto
por apenas um comando. Da manpage do 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)**.
[...]
---

A parte que fala sobre pipelines também cita que pode-se ter apenas um comando:

---
Pipelines
A pipeline is a sequence of **one or more commands** separated by one
of the control operators | or |&. The format for a pipeline is:

[time [-p]] [ ! ] command [ [|⎪|&] command2 ... ]

[...]
---

Eu só acho que a parte "separated by one of the control operators | or
|&" é um pouco ambígua. Pode induzir ao pensamento de que se | ou |&
não aparecerem, deixa de ser um pipeline. Não sei se os colegas
concordam. Não hesitem em dizer se estou viajando ;-)

Atenciosamente,

Guilherme Gall

Em 4 de abril de 2014 15:23, Paulo Bettega <address@hidden> escreveu:
> Olá pessoal, minha dúvida é se o PIPESTATUS também guarda o código
> de retorno do último comando executado sozinho, sem ser em pipe.
> (${PIPESTATUS[0]} guarda a mesma coisa que $?)
>
> Estava fazendo esse teste
> ps -u paulo | grep 'não existe' # com ps aux o grep retorna ele próprio
> $ echo ${PIPESTATUS[@]}
> 0 1
> $ echo ${PIPESTATUS[1]}
>
> $
>
> O segundo echo não mostrava o que eu esperava, que era o '1' da
> falha do grep.
> Até que caiu a ficha e vi que o PIPESTATUS estava sendo renovado
> pelo próprio comando 'echo ${PIPESTATUS[@]}' , mesmo sem ser em pipe.
> É isso mesmo que acontece?
>
> Abraços Paulo Bettega
>
>
>
> ------------------------------------
>
> ---------------------------------------------------------------------
> Esta lista não admite a abordagem de outras liguagens de programação, como 
> perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio 
> aviso.
> ---------------------------------------------------------------------
> Sair da lista: address@hidden
> ---------------------------------------------------------------------
> Esta lista é moderada de acordo com o previsto em 
> http://www.listas-discussao.cjb.net
> ---------------------------------------------------------------------
> Servidor Newsgroup da lista: news.gmane.org
> Grupo: gmane.org.user-groups.programming.shell.brazil
>
> Links do Yahoo Grupos
>
>


reply via email to

[Prev in Thread] Current Thread [Next in Thread]