改IP脚本,实现只能输入四位IP,而且IP地址要符合正常值,不能是特殊符号或者大于255或者字母,如果输入不对,循环输入,直到输入正确为止
[code]
#!/bin/bash
#2017年8月22日10:34:02
#by ying
#auto chang IP
ETH_DIR=”/etc/sysconfig/network-scripts/”
ETH_NAME=”ifcfg-eth0″
BAK_DIR=”/data/backup/`date +%F`”
NETMASK=255.255.255.0
if [ ! -d $BAK_DIR ];then
mkdir -p $BAK_DIR
fi
read -p “请输入你的IP,如192.168.1.1,IP: ” IPADDR
function STAT()
{
echo $IPADDR|grep -v “[Aa-Zz]”|grep –color -E “([0-9]{1,3}\.){3}[0-9]{1,3}”
NUM1=`echo $IPADDR |awk -F ‘.’ ‘{print $1}’`
NUM2=`echo $IPADDR |awk -F ‘.’ ‘{print $2}’`
NUM3=`echo $IPADDR |awk -F ‘.’ ‘{print $3}’`
NUM4=`echo $IPADDR |awk -F ‘.’ ‘{print $4}’`
NUM5=`echo $IPADDR |awk -F ‘.’ ‘{print $5}’`
if [ $NUM1 -le “255” -a $NUM2 -le “255” -a $NUM3 -le “255” -a $NUM4 -le “255” -a “$NUM5” = “” ];then
STATUS=OK
else
STATUS=NO
fi
}
STAT
while [ “$STATUS” != “OK” ]
do
read -p “输入有误,请输入正确的IP: ” IPADDR
STAT
done
cp $ETH_DIR/$ETH_NAME $BAK_DIR
read -p “请输入网关:” GATEWAY
cat>$ETH_DIR/$ETH_NAME<<EOF
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=static
IPADDR=$IPADDR
NETMASK=$NETMASK
GATEWAY=$GATEWAY
EOF
service network restart
cat>/etc/resolv.conf<<EOF
nameserver 8.8.8.8
nameserver 202.106.0.20
EOF
[/code]