Sem querer parecer chato, mas por que não usar o mtr? A não ser que você queira apenas ICMP mesmo. Eu faria algo assim:
#!/bin/bash ping -c10 $1 > $1.tmp cat $1.tmp | grep 'Unreacheble' |expr `wc -l`*100/10|bc -l ping -c10 $2 > $2.tmp cat $1.tmp | grep 'Unreacheble' |expr `wc -l`*100/10|bc -l rm -f $1.tmp rm -f $2.tmp #fim []'s Gunter Em 14-12-2009 15:12, Davis Oliveira escreveu: > > Fala Jimmy, > > Toda solução seria bem vinda, isso faz com que nos possamos pensar em > outras soluções para um determinado problema. Com tudo, a melhor > ideia, que eu queria, era para o final na contagem dos oks e sair com > a percentagem utilizando o `expr`. > > []'s > > ________________________________ > De: jimmy <[email protected] <mailto:jimmy.tty%40gmail.com>> > Para: [email protected] > <mailto:shell-script%40yahoogrupos.com.br> > Enviadas: Segunda-feira, 14 de Dezembro de 2009 13:24:18 > Assunto: Re: [shell-script] Melhor solução. > > On Mon, Dec 14, 2009 at 03:47:06AM -0800, Davis Oliveira wrote: > > > > Bom dia Lista, > > > > Estava eu fazendo um script que testasse pings, em ips passados por > > parâmetros, fizesse teste para verificar se o formato de ip estava > certo, > > e caso o resultado desse ok, esse resultado teria que ser mostrado em > > forma de porcentagem( % de pings realizados com sucesso), mas para > calcular > > esse resultado teria que ser usado o `expr`. Com tudo cheguei em uma > > solução sabendo que não era a melhor possível, alguem poderia me sugerir > > uma solução melhor ? > > > > #!/bin/bash > > if [ $# != 4 ] > > then > > echo "Voce precisa digitar 04(quatro) endereços IP " > > exit 1 > > fi > > for i > > do > > for j in `seq 4` > > do > > b=`echo $i| cut -f$j -d.` > > if [ "$b" -gt 255 ] > > then > > echo "Você digitou algum endereço IP errado" > > exit 1 > > else > > echo "Formato de ip Valido" >/dev/null > > fi > > done > > done > > for i > > do > > for j in `seq 1` > > do > > if ping -c1 "$i" >/dev/null > > then > > echo " "$i" OK - Host encontrado" > > echo " "$i" OK - Host encontrado" >> /tmp/oks > > else > > echo " "$i" Não Ok - Host não encontrado" > > fi > > done > > done > > numlinhas=`cat /tmp/oks|wc -l` > > echo " Voce obteve `expr "$numlinhas" \* 100 \/ 4 `% de oks " > > rm -rf /tmp/oks > > > > ____________ _________ _________ _________ _________ _________ _ > > a "solução melhor" a que se refere diz respeito a uma parte específica > do seu script ou ao script como um todo? > poderia ser um pouco mais específico? > > -- > "Não manejo bem as palavras > Mas manipulo bem as strings." > ------------ --------- --------- > > __________________________________________________________ > Veja quais são os assuntos do momento no Yahoo! +Buscados > http://br.maisbuscados.yahoo.com <http://br.maisbuscados.yahoo.com> > > [As partes desta mensagem que não continham texto foram removidas] > > [As partes desta mensagem que não continham texto foram removidas]
