Shell脚本实现自动修改IP、主机名等功能分享

2019-09-23 09:31:18于海丽

  [ "$A" -ne "4" ] 
do 
  read -p "Please re Inster ip Address,example 192.168.0.11 ip": IPADDR 
count=(`echo $IPADDR|awk -F. '{print $1,$2,$3,$4}'`)  
A=${#count[@]} 
done 
 #sed -e 可以连续修改多个参数#
  sed -i -e 's/^IPADDR/#IPADDR/g' -e 's/^NETMASK/#NETMASK/g' -e 's/^GATEWAY/#GATEWAY/g' $ETHCONF
 #echo -e n为连续追加内容,并自动换行#
  echo -e "IPADDR=$IPADDRnNETMASK=$NETMASKnGATEWAY=`echo $IPADDR|awk -F. '{print $1"."$2"."$3}'`.254" >>$ETHCONF 
  echo "This IP address Change success !" 
else 
  echo "This $ETHCONF static exist,please exit" 
  exit $? 
fi 

#定义hosts函数 
############function hosts############## 
function Change_hosts () 

if 
   [ ! -d $DIR ];then 
   mkdir -p $DIR 
fi 
  cp $HOSTS $DIR 
  read -p "Please insert ip address": IPADDR 
host=`echo $IPADDR|sed 's/./-/g'` 
  cat $HOSTS |grep 127.0.0.1 |grep "$host" 
if 
  [ $? -ne 0 ];then 
  sed -i "s/127.0.0.1/127.0.0.1 $host/g" $HOSTS 
  echo "This hosts change success " 
else 
  echo "This $host IS Exist .........." 
fi 
}
###########fuction network############### 
#定义network函数 
function Change_network ()  

   if 
   [ ! -d $DIR ];then 
   mkdir -p $DIR 
 fi 
  cp $NETWORK $DIR 
  read -p "Please insert ip address": IPADDR 
host=`echo $IPADDR|sed 's/./-/g'` 
  grep "$host" $NETWORK 
   if 
  [ $? -ne 0 ];then 
  sed -i "s/^HOSTNAME/#HOSTNAME/g" $NETWORK 
  echo "NETWORK=$host" >>$NETWORK 
else 
  echo "This $host IS Exist .........." 
  fi 

#PS3一般为菜单提示信息# 
PS3="Please Select ip or hosts Menu": 
#select为菜单选择命令,格式为select $var in ..command.. do .... done   
  select i in  "Change_ip" "Change_hosts" "Change_network" 

do 
#case 方式,一般用于多种条件下的判断 
case $i in  
     Change_ip ) 
     Change_ip 
;; 
     Change_hosts ) 
     Change_hosts 
;; 
     Change_network ) 
     Change_network