#!/bin/bash
inputip(){
read -p "请输入第`expr $i + 1`台服务器IP: " ip[$i]
}

check(){
for (( i=0;i<$num;i++ ))
do
 inputip
 echo "${ip[$i]}" | egrep '^([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-4])\.(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){2}([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-4])$' > /dev/null
 if [ $? -ne 0 ]; then echo "错误的IP地址,请确认后再次输入!"  && inputip
 fi
done
echo "检测中,请稍候..."
echo ----------------------------------------
#echo ${ip[@]}
#exit
n=0
for (( j=0;j<$num;j++ ))
do
 ping -c 3 ${ip[$j]} &> /dev/null
 if [ $? -ne 0 ]
 then
  echo "地址为${ip[$j]}的服务器`date`不在线。" && let n++
 fi
done
echo ----------------------------------------
echo "检测完毕,共有$n台服务器不在线。"
}


read -p '请输入需要检测的服务器的数量:' num
echo $num | grep -q '^[1-9][0-9]*$'
if [ $? -ne 0 ]
   then read -p 'You must input a number: ' num && check
   else
 check 
fi