脚本后面添加参数

运行脚本,第一个位置参数只能是master或者join

                  第二个位置参数只能是内网ip

                  第三个参数默认是False,如果是True,激活第四个位置参数,其余参数出错

                  第四个参数是一个外网ip

 简单地讲,内网IP有3种:第一种10.0.0.0~10.255.255.255,第二种172.16.0.0~172.31.255.255,第三种192.168.0.0~192.168.255.255

#! /bin/bash
#$3 = "False"
#echo $1 $2 

if [[ $1 == "master" ]]
   then   
   echo "master"
   elif [[ $1 == "join" ]]
    then
        echo "join"
   else
    echo "$1 is wrong"
    exit
fi


m=`echo $2 |sed 's/[0-9.]//g'`
n=`echo $2 |sed 's/[0-9]//g'|wc -c`
#echo "qqqqqqq"
#echo $m
#echo $n
#echo "wwwwwwwww"

n1=`echo $2 |cut -d'.' -f1`
n2=`echo $2 |cut -d'.' -f2`
n3=`echo $2 |cut -d'.' -f3`
n4=`echo $2 |cut -d'.' -f4`

if [ -z $n1 ] && [ -z $n2 ] && [ -z $n3 ] && [ -z $n4 ]
then
echo "IP is Null"
exit
fi


if [ -z $n4 ]
then
    echo "ip is wrong!"
    exit
fi


if [ -z $m ] && [ $n -eq 4 ] && [ -n $n1 ] && [ -n $n2 ] && [ -n $n3 ] && [ -n $n4 ]
then
   # 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 ]]

         if [[ $n1 -eq 10 ]] && [[ $n2 -ge 0 ]] && [[ $n2 -le 255 ]] && [[ $n3 -ge 0 ]] && [[ $n3 -le 255 ]] && [[ $n4 -ge 0 ]] && [[ $n4 -le 255 ]]
     then
         echo "$2"

     elif [[ $n1 -eq 172 ]] && [[ $n2 -ge 16 ]] && [[ $n2 -le 31 ]] && [[ $n3 -ge 0 ]] && [[ $n3 -le 255 ]] && [[ $n4 -ge 0 ]] && [[ $n4 -le 255 ]]
     then
         echo "$2"

     elif [[ $n1 -eq 192 ]] && [[ $n2 -eq 168 ]] && [[ $n3 -le 255 ]] && [[ $n4 -ge 0 ]] && [[ $n4 -le 255 ]]
         then
         echo "$2"

         else
         echo "IP is not Intranet"
         exit
         fi
    #else
#        echo "IP is not Intranet"
 #   fi 
                                                       
else
          echo "ip is wrong!"
           exit
fi

#if [ -z $m ] && [ $n -eq 4 ] && [ -n $n1 ] && [ -n $n2 ] && [ -n $n3 ] && [ -n $n4 ]
#then
#    if [[ $n1 -ge 0 ]] && [[ $n1 -le 255 ]] && [[ $n1 -ne 10 ]]  && [[ $n2 -ge 0 ]] && [[ $n2 -le 255 ]] && [[ $n3 -ge 0 ]] && [[ $n3 -le 255 ]] && [[ $n4 -ge 0 ]] && [[ $n4 -le 255 ]]



#a=$3
#a="False"

if [[ $3 == "True" ]]
   then
   echo $3
  # echo $4
   i=`echo $4 |sed 's/[0-9.]//g'`
   j=`echo $4 |sed 's/[0-9]//g'|wc -c`
   j1=`echo $4 |cut -d'.' -f1`
   j2=`echo $4 |cut -d'.' -f2`
   j3=`echo $4 |cut -d'.' -f3`
   j4=`echo $4 |cut -d'.' -f4`
   if [ -z $i ] && [ $j -eq 4 ] && [ -n $j1 ] && [ -n $j2 ] && [ -n $j3 ] && [ -n $j4 ];then
   if [[ $j1 -ge 0 ]] && [[ $j1 -le 255 ]] && [[ $j2 -ge 0 ]] && [[ $j2 -le 255 ]] && [[ $j3 -ge 0 ]] && [[ $j3 -le 255 ]] && [[ $j4 -ge 0 ]] && [[ $j4 -le 255 ]]
      then
      echo $4                    
   fi
   
   if [[ $j1 -eq 10 ]]
   then
       echo "Intranet IP"
   fi
   if [[ $j1 -eq 172 ]] && [[ $j2 -ge 16 ]] && [[ $j2 -le 31 ]]
   then
       echo "Intranet IP"
   fi
   if [[ $j1 -eq 192 ]] && [[ $j2 -eq 168 ]]
   then
       echo "Intranet IP"
   fi

   else
       echo "ip is wrong!!"
       exit    
   fi


   elif [[ $3 == "" ]]
     then
         echo "Null"
   else
   echo "The third parameter is wrong!"
   exit

fi

 

 参考文档:

https://blog.51cto.com/jmucai/1751151

 

posted @ 2020-07-01 16:39  半日闲1  阅读(345)  评论(0编辑  收藏  举报