分享一篇Linux系统使用Tomcat服务时交互式修改server.xml中端口号的shell脚本

#!/bin/bash
echo -e '
'
echo "***********************************"

port1=`grep -r "shutdown" server.xml|awk 'BEGIN {FS="" "} {print $1}'|awk -F""" '{print $2}'`
echo -e 当前Tomcat的监听端口为:"33[32m $port1 33[0m"
port2=`grep "HTTP" server.xml|awk 'BEGIN {FS="" "} {print $1}'|awk -F""" '{print $2}'`
echo -e 当前服务器连接器端口为:"33[32m $port2 33[0m"
port3=`grep -i "redirectPort" server.xml|awk "NR==1"|awk 'BEGIN {FS="=""} {print $2}'|cut -f1 -d"""`
echo -e 当前重定向的端口为:"33[32m $port3 33[0m"
port4=`grep -i "ajp" server.xml |awk 'BEGIN {FS="" "} {print $1}'|awk -F""" '{print $2}'`
echo -e 当前服务器的集成端口端口为:"33[32m $port4 33[0m"
echo "***********************************"
echo -e '

'

while :
do

cat <<eof
***********************************
      请输入数字或字符选项
***********************************
1.修改Tomcat监听端口
2.修改当前服务器连接器的端口
3.修改当前重定向的端口
4.修改当前服务器的集成端口
x.退出
***********************************

eof
linenumber=`grep -rn "unpackWARs" server.xml | awk -F":" '{print $1}'`
echo -e unpackWARS...内容在文件第"33[32m $linenumber 33[0m"行
echo -e '
'
read -p "输入您的选择:" op
    case $op in
        1)
         read -p "修改Tomcat监听端口为 " port_1
         sed -i "s/$port1/$port_1/" /test/server.xml
         echo -e 当前Tomcat的监听端口为:"33[32m $port_1 33[0m"
         echo Tomcat监听端口修改成功
         ;;

        2)
         read -p "修改当前服务器连接器的端口为 " port_2
         sed -i "s/$port2/$port_2/" /test/server.xml
         echo -e 当前服务器连接器端口为:"33[32m $port_2 33[0m"
         echo 当前服务器连接器的端口修改成功
         ;;

        3)
         read -p "修改当前重定向的端口为 " port_3
         sed -i "s/$port3/$port_3/" /test/server.xml
         echo -e 当前重定向的端口为:"33[32m $port_3 33[0m"
         echo 当前重定向的端口修改成功
         ;;

        4)
         read -p "修改当前服务器的集成端口为 " port_4
         sed -i "s/$port4/$port_4/" /test/server.xml
         echo -e 当前服务器的集成端口端口为:"33[32m $port_4 33[0m"
         echo $port4
         echo 当前服务器的集成端口修改成功
         ;;

        x)
         echo 退出修改操作...
         break
         ;;
    *)
        echo -e "33[31m 错误输入,请输入指定选项 33[0m"
    esac
done
echo -e '
'

  实现效果如下图

 

原文地址:https://www.cnblogs.com/fusheng11711/p/10857901.html