Procura por uma string na saída de um comando

3

Estou preso a um script simples. Desejo executar tracepath em vários endereços e descobrir se algum IP está contido na saída do tracepath . Por enquanto eu tenho o seguinte:

if tracepath -n google.com | grep x.x.x.x 
do 
echo bal bal 
else 
echo ova ova ova
fi

Mas isso não funciona.

    
por user3523605 30.08.2014 / 13:44

2 respostas

3

Tente esta sintaxe e acho que você não deseja a saída de grep , por isso usamos a opção -q (silenciosa):

(traceroute -n google.com | grep -q x.x.x.x) && echo "Yes" || echo "Nope"

Ou com a declaração if :

if (traceroute -n google.com | grep -q x.x.x.x)
then
  echo "Yes"
else
 echo "Nope"
fi
    
por 30.08.2014 / 17:14
-1

Você tem uma sintaxe incorreta, depois que a condição if deve ser then , não do :

tracepath -n google.com | grep x.x.x.x
if [ $? -eq 0 ]
then
echo "bal bal" 
else
echo "ova ova ova"
fi
    
por 30.08.2014 / 14:12