shell脚本修改主机IP地址
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell脚本修改主机IP地址相关的知识,希望对你有一定的参考价值。
#!/bin/bash
#Auto modify ip and hostname
IP_CONFIG=‘/etc/sysconfig/network-scripts/ifcfg-eth0‘
HOSTNAME_CONFIG=‘/etc/sysconfig/network‘
HOSTS_CONFIG=‘/etc/hosts‘
#定义一个IP主要内容数组
a=0 #定义变量a为数组的下标,动态使用的时候调用IP_ARRAY[a]
IP_ARRAY=(
IPADDR
NETMASK
GATEWAY
)
#判断IP是否符合标准规则
function judge_ip(){
#这里local $1出错,用2>/dev/null屏蔽掉错误,暂未发现影响输出结果
local $1 2>/dev/null
TMP_TXT=/tmp/iptmp.txt
echo $1 > ${TMP_TXT}
IP_ADDR=grep -Eo ‘([0-9]{1,3}.){3}[0-9]{1,3}‘ ${TMP_TXT}
#判断有没有符合...规则的IP
if [ ! -z "${IP_ADDR}" ];then
local j=0;
#通过循环来检测每个点之前的数值是否符合要求
for ((i=1;i<=4;i++))
do
local IP_NUM=echo "${IP_ADDR}" |awk -F. "{print $"$i"}"
#判断IP_NUM是否在0与255之间
if [ "${IP_NUM}" -ge 0 -a "${IP_NUM}" -le 255 ];then
((j++));
else
return 1
fi
done
#通过j的值来确定是否继续匹配规则,循环四次,若都正确j=4.
if [ "$j" -eq 4 ];then
#确认是否为自己想要输入的IP地址
rm -rf ${TMP_TXT}
return 0
fi
else
return 1
fi
}
#取得正确的IP值
#通过调用函数judge_ip,变量IP_ADDR的最终值就是正确的
function read_right_IP(){
read -p "请输入${IP_ARRAY[a]}的值:" IP_ADDRS
IP_ADDRS=""
judge_ip "${IP_ADDRS}";
i=`echo $?`
#循环直到输入正确的IP为止
until [ "$i" -eq 0 ];do
echo -e " 33[31m
你输入了错误的${IP_ARRAY[a]}值:${IP_ADDRS} ====>>>>