脚本后面添加参数
运行脚本,第一个位置参数只能是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