Hasta hace un tiempo para poder hacer contadores usaba el comando bc para hacer la operación de suma. Esto tiene un coste computacional alto que podemos evitar si sabemos hacer operaciones matemáticas con bash.

Así que en vez de hacer:

COUNTER=`echo "$COUNTER + 1" | bc`

mejor haremos alguna de las siguientes:

COUNTER=$(($COUNTER+1))
COUNTER=$(($COUNTER++))

Con este sistema podemos:

  • sumar: $((1+1))
  • restar: $((2-1))
  • multiplicar: $((2*3))
  • dividir: $((8/2])

Y como ejemplo un pequeño bucle que recorre un rango de IPs (pongamos aquí de la 192.168.200.20 a la 192.168.200.45) y nos saca los valores de resolución inversa de DNS para aquellos que existen según el servidor de DNS serverdns.domain.com 🙂

#!/bin/bash
VALOR=20
while [ "$VALOR" -le 45 ]
do
    dig @serverdns.domain.com. ptr $VALOR.200.168.192.in-addr.arpa. | grep ^[0-9] | grep PTR;
    VALOR=$(($VALOR+1))
done