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

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

Re: [shell-script] Dúvida com read


From: Julio C. Neves
Subject: Re: [shell-script] Dúvida com read
Date: Sat, 13 Sep 2014 17:52:34 -0300

Diogenes, nessa lista sempre ajudamos a todos, porém eu nunca ajudo a resolver problemas como esse. Estudante tem de aprendr a se virar sozinho, para aprender a matéria.

Espero que os cologas de lista passem a fazer o mesmo, para aprimorar a qualidade (?) dos profissionais que saem de nossas universidades.

Em 13/09/2014 08:10, "Diógenes Vargas de Bittencourt address@hidden [shell-script]" <address@hidden> escreveu:
 

Boa tarde pessoal,

Estou fazendo uns exercícios para a faculdade, e em um deles pede assim:

Escreva um script que receba dois endereços para “pingar” e a quantidade de mensagens ICMP que deverão ser enviadas. Ao final, apresentar:

1) A quantidade de pacotes enviados (para cada um)

2) A quantidade de pacotes recebidos (para cada um)

3) Qual deles tem a menor perda percentual

4) Qual deles tem o menor tempo de RTT

Segue script que fiz. O problema é que quando executo o script em uma máquina pela primeira vez o resultado dos itens 1 e2 saem corretos, na segunda vez os itens pegam os valores da vez anterior, e assim por todas as vezes que eu executo o scritp. Alguém tem alguma ideia do que pode estar acontecendo? Segue scritp abaixo.

Desde já obrigado pela ajuda.


#variaveis

ENDER1="0"

ENDER2="0"

QTDEMSG="0"

PING="/bin/ping"

ARQEND1="saida1_tarefa6"

ARQEND2="saida2_tarefa6"

PCTENV1=`cat saida1_tarefa6 |grep packets |awk '{print $1}'`

PCTENV2=`cat saida2_tarefa6 |grep packets |awk '{print $1}'`

PCTRCV1=`cat saida1_tarefa6 |grep received |awk '{print $4}'`

PCTRCV2=`cat saida2_tarefa6 |grep received |awk '{print $4}'`

PCTLOSS1=`cat saida1_tarefa6 |grep loss |awk '{print $6}' |awk -F'%' '{print $1}'`

PCTLOSS2=`cat saida2_tarefa6 |grep loss |awk '{print $6}' |awk -F'%' '{print $1}'`

RTT1=`cat saida1_tarefa6 |grep rtt |awk '{print $4}' |awk -F'/' '{print $1}' |awk -F'.' '{print $1}'`

RTT2=`cat saida2_tarefa6 |grep rtt |awk '{print $4}' |awk -F'/' '{print $1}' |awk -F'.' '{print $1}'`


#codigo

clear

echo ""

echo -n "Insira o primeiro endereco para verificacao: "; read ENDER1;

echo -n "Insira o segundo endereco para verificacao: "; read ENDER2;

echo -n "Quantas mensagens ICMP enviadas? "; read QTDEMSG;

$PING $ENDER1 > $ARQEND1 -c $QTDEMSG

$PING $ENDER2 > $ARQEND2 -c $QTDEMSG


Menu(){

echo ""

echo "1 - A quantidade de pacotes enviados"

echo "2 - A quantidade de pacotes recebidos"

echo "3 - Menor perda percentual"

echo "4 - Menor tempo de RTT"

echo "5 - Sair"


echo -e "Escolha uma das opcoes: \c"

read OPCAO

case $OPCAO in

1) echo "====================================================="

echo "Segue abaixo pacotes enviados: "

echo "$ENDER1 teve $PCTENV1 pacotes enviados"

echo "$ENDER2 teve $PCTENV2 pacotes enviados"

echo "====================================================="

Menu

        ;;

2) echo "====================================================="

echo "Segue abaixo pacotes recebidos: "

echo "$ENDER1 teve $PCTRCV1 pacotes recebidos"

echo "$ENDER2 teve $PCTRCV2 pacotes recebidos"

echo "====================================================="

Menu

        ;;

3) if [ $PCTLOSS1 -le $PCTLOSS2 ];

then

echo ""

echo "O % de perda do $ENDER1 de $PCTLOSS1% eh menor que o do $ENDER2 que eh $PCTLOSS2%!"

echo ""

else

echo ""

echo "O % de perda do $ENDER2 de $PCTLOSS2% eh menor que o do $ENDER1 que eh $PCTLOSS1%!"

echo ""

fi

Menu

        ;;

4) if [ $RTT1 -le $RTT2 ];

then

echo ""

echo "O RTT $RTT1 do $ENDER1 eh menor que o do $ENDER2 que eh $RTT2!"

echo ""

else

echo ""

echo "O RTT $RTT2 do $ENDER2 eh menor que o do $ENDER1 que eh $RTT1!"

echo ""

fi

Menu

        ;;

5) exit 0

        ;;

*) echo "Opcao invalida"

Menu

        ;;

esac

unset $ENDER1 $ENDER2 $QTDEMSG

}

Menu


reply via email to

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