#!/bin/bash
export LANG="zh_CN"
# 判断输入ip格式
judge_ip()
{
if [ -z $1 ]
then
echo -ne "\e[40;31;1m 不能为空,请重新输入: \e[0m"
read ip
judge_ip "$ip"
else
if [[ "$1" =~ '^[1-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$' ]]
then
echo
else
echo -ne "\e[40;31;1m 输入的ip不合法,请重新输入:\e[0m"
read ip
judge_ip "$ip"
fi
fi
}
# 判断确认输入
judge_echo ()
{
case $1 in
y|Y)
echo
;;
n|N)
echo -ne "\e[40;31;1m 请重新输入IP: \e[0m"
read ip
judge_ip "$ip"
echo -ne "\e[40;33;1m 确认输入无误[y/n]: \e[0m"
read yes
judge_echo "$yes"
;;
*)
echo
echo -ne "\e[40;31;1m 请重新输入y或者n: \e[0m"
read yes
judge_echo "$yes"
;;
esac
}
# 读入各个IP
Ip_Value=()
IP_READ()
{
echo -e "\e[40;36;1m ==========请输入$1IP========== \e[0m"
read ip
judge_ip "$ip"
echo "$1IP): $ip"
echo -ne "\e[40;33;1m 确认输入无误[y/n]: \e[0m"
read yes
judge_echo "$yes"
Ip_Value[$i]=$ip
unset ip
}
# 声明各个需要修改的IP
Ip_List=('数据库服务器')
i=0
# 要修改ip的个数
Ip_Nu=${#Ip_List[@]}
# 给各个IP赋具体值
while [ $i -lt $Ip_Nu ]
do
if [ $i -eq 0 ]
then
IP_READ "${Ip_List[$i]}"
else
if [[ "${Ip_List[$i]}" = "${Ip_List[$i-1]}" ]]
then
Ip_Value[$i]=${Ip_Value[$i-1]}
else
IP_READ "${Ip_List[$i]}"
fi
fi
let i++
done
#oldIP 获得修改的老IP
ip1=`cat /home/jboss/server/default/deploy/vmas.war/WEB-INF/classes/applicationContext-service.xml|egrep -o '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}'|sed -n 1p`
# 获得老Ip的各个变量
Ip=(`awk '/^#oldIP/,/^$/ {if ($1!~"^#|^$" ) print $0} ' $0 |awk -F"=" '{print $1}'`)
Ip_Path=(`awk '/^#oldIP/,/^$/ {if ($1!~"^#|^$" ) print $0} ' $0 |awk -F"=" '{print $2}' |awk '{print $2}' |awk -F"|" '{print $1}'`)
#修改ip函数
Modify_Ip()
{
eval old_ip="$"$1
if [ -z "$old_ip" ]
then
echo -e "\e[40;35;1m IP取值为空,不能修改,请检查 \e[0m"
else
sed -i "s/$old_ip/$2/" $3
fi
}
j=0
while [ "$j" -lt "${#Ip[@]}" ]
do
Modify_Ip "${Ip[$j]}" "${Ip_Value[$j]}" "${Ip_Path[$j]}"
let j++
done
本文出自 “小强” 博客,转载请与作者联系!