Boa tarde a todos,
Estou implementando um loop simples em um script para facilitar algumas rotinas de trabalho, no entanto estou enfrentando uns problemas e já não sei onde mais atacar para que o resultado seja o esperado.
Segue o código do script:
#!/bin/bash
while read hosts
do
if [[ "$hosts" =~ 192\.168\.20[0-3]\.[1-254] || "$hosts" =~ 192\.168\.70\.[192-255] ||\
"$hosts" =~ 172\.8\.96\.[128-255] || "$hosts" =~ 172\.220\.1\.[128-255] ]];
then
echo "$hosts"
echo "reservado"
else
echo "$hosts"
echo "IP válido"
fi
done < ips
O arquivo ips contém:
192.168.200.200
192.168.201.201
192.168.202.202
192.168.203.203
172.8.96.129
172.8.96.130
172.220.1.197
192.168.70.200
Saída:
192.168.200.200
reservado
192.168.201.201
reservado
192.168.202.202
reservado
192.168.203.203
reservado
172.8.96.129
IP válido
172.8.96.130
IP válido
172.220.1.197
IP válido
192.168.70.200
reservado
Aparentemente, o que era para ser uma coisa simples, está me fazendo perder os poucos cabelos que me restam.
Alguma sugestão?