acoscarelli
(usa Ubuntu)
Enviado em 16/02/2013 - 15:15h
Pedro ..
testei o codigo e o if nao esta pegando o caso do ping ..
Fiz assim - EXEMPLO:
if [ "ping -c1 10.20.2.3" ]
then
echo "CONECTADO"
else
echo "Host indisponível."
fi
Nesse caso o IP eh um inexistente, só coloquei para fazer com que a condição caísse no host indisponivel e só esta caindo em conectado.
Consegue localizar onde estou errando ? [/quote]
Acoscarelli, mil desculpas cara, o que aconteceu foi o seguinte, o comando test ([) interpretou que o comando ping foi executado, que de fato foi, então, independente se o host estivesse disponível ou não, iria cair no "conectado". Dormi no ponto ao te passar essa resposta resposta. Mas vamos lá, o correto é dessa forma:
ping -c1 10.20.2.3 > /dev/null 2>&1
if [ $? -eq 0 ]
then
echo "CONECTADO"
else
echo "Host indisponível."
fi
Neste caso, usei a variável de retorno '$?'. Ela diz se o resultado do último comando (no nosso caso, o ping) foi satisfatório ou não. Se for zero, o resultado foi satisfatório, se for diferente de zero, não foi.
Testa agora! :p
[/quote]
Certinhoooo agoraaaa .
Valeu pela força ..