Search

Shell script: Contar anilhas de identificação de cabos

Identificar o cabeamento de uma rede é essencial para mantê-la organizada. Para facilitar, criei este script que mostra o total de anilhas de identificação necessárias para determinado numero de cabos.

Por exemplo, se você precisar identificar os cabos de rede de 1 a 35, basta chamar “./contar-anilhas 1 35″ (sem as aspas), que o programa irá lhe devolver como resultado, a quantidade de anilhas de cada número que será necessária para identificar todos os cabos.

Leve em consideração apenas que será exibida a quantidade para apenas 1 lado do cabo de rede. Caso deseje os dois, basta multiplicar por 2 (meio obvio não?).
Segue então o código abaixo. Qualquer dúvida ou sugestão de melhorias, deixe um comentário que terei o maior prazer em responder.

#!/bin/bash

#contar-anilhas.sh desenvolvido por jeferson dos santos < jeferson at jeferson.info>
#este script permite calcular quantas anilhas de cada numero serão necessarias
#para identificar uma quantidade X de cabos

#uso:
#contar-anilhas.sh <numero inicial> <numero final>

#exemplo: contar-anilhas.sh 1 6
#0 = 0
#1 = 1
#2 = 1
#3 = 1
#4 = 1
#5 = 1
#6 = 1
#7 = 0
#8 = 0
#9 = 0

#define todas as variaveis como 0 para não ficar nada em branco no final
num0=0
num1=0
num2=0
num3=0
num4=0
num5=0
num6=0
num7=0
num8=0
num9=0

for NUMERO in $(seq $1 $2 | sed "s/\(.\)/\1 /g" | tr -s \ );
do

	[ $NUMERO -eq 0 ] && num0=$(($num0+1))
	[ $NUMERO -eq 1 ] && num1=$(($num1+1))
	[ $NUMERO -eq 2 ] && num2=$(($num2+1))
	[ $NUMERO -eq 3 ] && num3=$(($num3+1))
	[ $NUMERO -eq 4 ] && num4=$(($num4+1))
	[ $NUMERO -eq 5 ] && num5=$(($num5+1))
	[ $NUMERO -eq 6 ] && num6=$(($num6+1))
	[ $NUMERO -eq 7 ] && num7=$(($num7+1))
	[ $NUMERO -eq 8 ] && num8=$(($num8+1))
	[ $NUMERO -eq 9 ] && num9=$(($num9+1))

done

echo 0 = $num0
echo 1 = $num1
echo 2 = $num2
echo 3 = $num3
echo 4 = $num4
echo 5 = $num5
echo 6 = $num6
echo 7 = $num7
echo 8 = $num8
echo 9 = $num9

Leave a Reply