[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Duvidas sobre redirecionamentos....
From: |
Flavio Torres |
Subject: |
Re: Duvidas sobre redirecionamentos.... |
Date: |
Sat, 09 Sep 2006 04:32:00 -0000 |
User-agent: |
eGroups-EW/0.82 |
--- Em address@hidden, daniel <dregis@t...> escreveu
> Sei que /dev/null é um arquivo vazio do sistema. Mas não estou
> conseguindo INTERPRETAR a construção do comando acima.
> Se o comando "ping -c 1 IP" .... ???
Didaticamente:
O if testa (mentira pq quem testa é o test), e o ping vem com o
resultado (0 ou 1).
Entao: Se 0 faça, senão, faça.
> O sinal ">" funciona como um redirecionamento do STDOUT,né ? E porque
> redirecionar para o /dev/null ?
Sim, o resultado vai ser direcionado para o buraco-negro.
>Dai existe um novo redirecionamento que
> também não entendo o que faz nem porque ele tá ali "2>&1".
>
> Sei ue tem haver com STDERR.
Exato, o resultado é direcionado para o buraco-negro, e se houver
erros, estes serão direcionados também.
Veja o exemplo prático, com e sem o 2>&1.
Um teste com sucesso SEM STDERR retornaria:
$ if ping pop.bra.terra.com.br -c 1 > /dev/null; then echo ok; else
echo nok;fi
ok
Um teste com um host inválido e SEM STDERR, teríamos:
$ if ping pop.bra.terra.com.b -c 1 > /dev/null; then echo ok; else echo
nok;fi
ping: unknown host pop.bra.terra.com.b <<<<<
nok
Adicionando STDERR com host valido:
$ if ping pop.bra.terra.com.br -c 1 > /dev/null 2>&1; then echo ok;
else echo nok;fi
ok
Adicionando STDERR com host inválido:
$ if ping pop.bra.terra.com.b -c 1 > /dev/null 2>&1; then echo ok; else
echo nok;fi
nok
Viu só? Sem lixos.
Vá ao site julioneves.com, lá certamente você encontrará mais
informações sobre STDERR e direcionamentos.
Abraços.