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

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

Re: [shell-script] stderr/stdout


From: Rodrigo R. Martins
Subject: Re: [shell-script] stderr/stdout
Date: Thu, 1 Sep 2011 18:07:55 +0600

Fala Fernando, blz?

Não, cara... na verdade eu encontrei uma literatura que me ajudou um pouco a
entender o que de fato está acontecendo[1]:

"On the other hand, some shells, such as Solaris or FreeBSD /bin/sh, warn
about missing programs before performing redirections. Therefore, to
silently check whether a program exists, it is necessary to perform
redirections on a subshell:

     $ /bin/sh -c 'nosuch 2>/dev/null'
     nosuch: not found
     $ /bin/sh -c '(nosuch) 2>/dev/null'
     $ bash -c 'nosuch 2>/dev/null'

"

Ou seja... entendo que o shell tenta emitir a mensagem de erro/warning antes
mesmo de repassar a saída pro bendito file descriptior...

Já fiz alguns testes e ainda continuo, mas não obtive sucesso... Olha só...
o objetivo maior neste momento é evitar que no meu script emita mensagens de
erro quando não achar um binário qualquer. Estou usando Sun/Solaris 5.9.

testing=`which command_testing 2>/dev/null`

if [ -n "$testing" ]; then
    command_testing -xpto
else
    echo "[!] Command testing was not found"
fi

Com bash funciona de boa, mas eu não posso contar que em todas as máquinas
vai existir o bash instalado...

Acontece que não há nada que eu consiga fazer pra evitar os warnings na
tela... enfim.

Abraços,

Rodrigo Martins

[1] http://www.gnu.org/s/hello/manual/autoconf/File-Descriptors.html



Em 1 de setembro de 2011 17:27, Fernando Mercês <address@hidden>escreveu:

> Estranho... o número que precede o ">" é o file descriptor que você quer
> redirecionar. Será que esse shell (que deve ser o sh) não está escrevendo
> tanto em stderr quanto em stdout? Tenta:
>
> $ svcs 2>&1 > /dev/null
>
> Abraço.
>
> Att,
>
> Fernando Mercês
> Linux Registered User #432779
> www.mentebinaria.com.br
> softwarelivre-rj.org
> @MenteBinaria
> ------------------------------------
> Participe do I Hack'n Rio
>                 hacknrio.org
> ------------------------------------
>
>
> 2011/9/1 Rodrigo R. Martins <address@hidden>
>
> > **
> >
> >
> > Pessoal,
> >
> > Estou fazendo alguns testes com Solaris, e estou tendo alguns problemas
> > para
> > canalizar mensagens de erros para evitar poluir a tela caso algo saia
> > diferente do esperado.
> >
> > Notei que qualquer comando ou sintaxe que não exista, ele obviamente
> > reclama
> > com uma mensagem de erro mas eu não conseguir achar um meio de controlar.
> > Exemplo:
> >
> > # svcs
> > svcs: not found
> >
> > # svcs 2>/dev/null
> > svcs: not found
> >
> > Se eu tentar com bash ou kornshell, tudo funciona perfeitamente. Exemplo:
> >
> > bash-2.05# svcs
> > bash: svcs: command not found
> >
> > bash-2.05# svcs 2>/dev/null
> >
> > Saberiam me dizer o porque?
> >
> > Desde já agradeço.
> >
> > Abraços,
> >
> > Rodrigo
> >
> > [As partes desta mensagem que não continham texto foram removidas]
> >
> >
> >
>
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>
>
> ------------------------------------
>
> ---------------------------------------------------------------------
> 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
>
>
>


[As partes desta mensagem que não continham texto foram removidas]



reply via email to

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