Zaczynam soją przygodę z pisaniem skryptów w bashu i cały czas natykam się na nowe problemy. Póki co wszystko udawało mi się rozwiązać samemu, ale tym razem jest inaczej, a mianowicie nie ogarniam podawania zakresu liczbowego w if'ie.
Program ma pobierać jako parametr adres IP i sprawdzić jakiej on jest klasy, a następnie wypisać tę klasę na ekran. Problem w tym, że przykładowo dla IP 200.*.*.* wypisuje, że jest on klasy B, a nie C. Proszę o pomoc.
Kod: Zaznacz cały
#!/bin/bash
p=`echo "$1" | cut -d '.' -f 1`
if [ $p -le 126 ]
then
echo "Podane IP jest klasy A"
elif (( $p-ge128 && $p-le191 ))
then
echo "Podane IP jest klasy B"
elif (( $p-ge192 && $p-le223 ))
then
echo "Podane IP jest klasy C"
elif (( $p-ge224 && $p-le239 ))
then
echo "Podane IP jest klasy D"
elif (( $p-ge240 && $p-le255 ))
then
echo "Podane IP jest klasy E"
else
echo "Podane IP nie ma kasy milordzie!"
fi
