#!/bin/bash
#It's written by caibingsen
#!/bin/bash
#It's written by caibingsen
#date:2016-03-15
#while设置成死循环,在输入的ip不符合条件时,重新输入
while :
do
read -p "请输入要判断的ip地址:" ip
#判断输入的ip地址是否仅由数字和点组成,并将值赋给m。
#判断输入的ip地址的小数点的个数,复制给n
m=`echo $ip |sed 's/[0-9.]//g'`
n=`echo $ip |sed 's/[0-9]//g'|wc -c`
#截取ip地址的四个数字的部分,并分别复制。
n1=`echo $ip |cut -d'.' -f1`
n2=`echo $ip |cut -d'.' -f2`
n3=`echo $ip |cut -d'.' -f3`
n4=`echo $ip |cut -d'.' -f4`
#第一个if通过m和n来判断输入的ip是否符合要求
if [ -z $m ] && [ $n -eq 4 ] && [ -n $n1 ] && [ -n $n2 ] && [ -n $n3 ] && [ -n $n4 ];then
#第二个if通过n1到n4来判断输入的范围是否符合要求。
if [ $n1 -ge 0 ] && [ $n1 -le 255 ] && [ $n2 -ge 0 ] && [ $n2 -le 255 ] && [ $n3 -ge 0 ] && [ $n3 -le 255 ] && [ $n4 -ge 0 ] && [ $n4 -le 255 ]
then
echo "ip正确"
exit
else
echo "你输入的ip错误,请重新输入"
fi
else
echo "你输入的ip错误,请重新输入"
fi
done