Publicada por clicsis em 04/07/2007 - 10:05h:
* clicsis usa Debian

Como fazer para no script abaixo, me seja mostrado como resultado final a mensagem informando quantos foram liberados e quantos bloqueados, ou seja, como contar o loop?
=================== script ===================
#! /bin/bash
listTower="0"
WC_MACLIST=/etc/controle/wcmac_*
# Exemplo do arquivo /etc/controle/wcmac_0
# a;00:00:00:00:00:00;10.0.0.2;64;nome;n;;yes;yes;

# Loop de acordo com quantidade de Torres
for WC_TOWER in `echo $listTower` ; do

WC_MACLIST='/etc/controle/wcmac_'$WC_TOWER
      for i in `cat $WC_MACLIST`; do
      WC_STATUS=`echo $i | cut -d ';' -f 1`
      WC_IPSOURCE=`echo $i | cut -d ';' -f 3`
      WC_USUARIO=`echo $i | cut -d ';' -f 5`
      if [ $WC_STATUS = "a" ]; then
         echo -e $WC_IPSOURCE" liberado" >>/etc/liberados
         else
         echo -e $WC_IPSOURCE" bloqueado" >>/etc/bloqueados
      fi
      done
done
echo '[ok] Escrevendo IPs e Usuarios'
echo 'Foram liberados ' xxx ' e bloqueados ' xxx
=================== script ===================

Desde já, agradeço.

  
 
Resposta de alequimico em 04/07/2007 - 10:31h:
* alequimico usa Kali
* alequimico tem conceito: 9.3
 


Tente algo assim... (ainda nao testei mas deve funcionar)


#! /bin/bash
listTower="0"
liberados=0
bloqueados=0
WC_MACLIST=/etc/controle/wcmac_*
# Exemplo do arquivo /etc/controle/wcmac_0
# a;00:00:00:00:00:00;10.0.0.2;64;nome;n;;yes;yes;

# Loop de acordo com quantidade de Torres
for WC_TOWER in `echo $listTower` ; do

WC_MACLIST='/etc/controle/wcmac_'$WC_TOWER
for i in `cat $WC_MACLIST`; do
WC_STATUS=`echo $i | cut -d ';' -f 1`
WC_IPSOURCE=`echo $i | cut -d ';' -f 3`
WC_USUARIO=`echo $i | cut -d ';' -f 5`
if [ $WC_STATUS = "a" ]; then
echo -e $WC_IPSOURCE" liberado" >>/etc/liberados
let liberados++
else
echo -e $WC_IPSOURCE" bloqueado" >>/etc/bloqueados
let bloqueados++
fi
done
done
echo '[ok] Escrevendo IPs e Usuarios'
echo 'Foram liberados ' liberados ' e bloqueados ' bloqueados

 
Resposta de clicsis em 04/07/2007 - 10:33h:
* clicsis usa Debian
* clicsis tem conceito: nenhum voto.
 


Valeu cara, vou tentar agora mesmo. E lhe retorno o resultado.

 
Resposta de clicsis em 04/07/2007 - 13:35h:
* clicsis usa Debian
* clicsis tem conceito: nenhum voto.
 


Tudo funcionou belezinha, só com a observação de que na linha final devemos nos referir às variantes colocando o ($) antes da escrita e com isso a última linha contendo o resultado ficaria assim:

echo 'Foram liberados ' $liberados ' e bloqueados ' $bloqueados

Muito obrigado.

  


ATENÇÃO: Antes de contribuir com uma resposta, leia o artigo Qualidade de respostas e certifique-se de que esteja realmente contribuindo com a comunidade. Muitas vezes o ímpeto de contribuir nos leva a atrapalhar ao invés de ajudar.

Contribuir com resposta



CAPTCHA
[ Recarregar imagem ]

Digite o código acima:

  
* Nota: só é possível enviar respostas usuário que possui conta e esteja logado com ela, caso contrário sua mensagem será perdida.



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts