Siccome buona parte dei tuoi tentativi, lasciatelo dire
, non stanno ne' in cielo ne' tantomeno in terra ti consiglierei di leggere Advanced Bash Scripting (che a dispetto del nome parte dall'ABC), se cerchi su Google trovi anche una versione tradotta in italiano.
Venendo al merito, per fare il controllo devi usare un comando tipo grep, esempio alla buona che mi viene in mente su due piedi
codice:
while [ ! `echo "$riga" | grep -E "^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$"` ]; do
read riga
done
echo finalemente
l'espressione regolare non e` precisissima (accetterebbe anche un indirizzo tipo 444.444.444.444) ma credo che renda l'idea. Probabilmente ci sono anche soluzioni migliori, ma questa e` la prima che m'e` venuta in mente...