脚本特点
- 自动化环境变量设置:脚本自动检测并设置
TOMCAT_HOME
环境变量。 - Tomcat版本检测:通过Homebrew获取当前安装的Tomcat版本。
- 用户管理:添加或更新Tomcat的
admin
用户,密码固定为Test_password
。 - 服务重启:自动重启Tomcat服务以应用更改。
使用步骤
- 确保系统安装了Bash和Homebrew,Tomcat通过Homebrew安装。
- 保存脚本为
setup_tomcat.sh
。 - 给予执行权限:
chmod +x setup_tomcat.sh
。 - 运行脚本:
./setup_tomcat.sh
。
#!/bin/bash
# 函数:询问用户是否继续操作
ask_to_continue() {
read -p "$1 (Y/N): " -n 1 -r
echo
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
echo "操作已取消"
exit 1
fi
}
# 函数:安全地添加或更新环境变量到~/.zshrc
add_or_update_zshrc() {
local var_name=$1
local var_value=$2
if grep -q "^export $var_name=" ~/.zshrc; then
echo "$var_name 环境变量已经存在,准备更新..."
# 更新现有的环境变量
sed -i.bak "s|^export $var_name=.*|export $var_name=$var_value|" ~/.zshrc
else
echo "export $var_name=$var_value" >> ~/.zshrc
fi
}
# 检查 TOMCAT_HOME 环境变量
if grep -q "export TOMCAT_HOME" ~/.zshrc; then
echo
echo "TOMCAT_HOME 环境变量已经存在。"
ask_to_continue "是否要更新这个配置?"
fi
# 获取 Tomcat 的完整版本号
tomcat_version=$(brew info tomcat | grep /usr/local/Cellar/tomcat | awk -F'/' '{print $6}' | awk '{print $1}')
if [ -z "$tomcat_version" ]; then
echo "未能找到 Tomcat 版本信息,请确保 Tomcat 已通过 Homebrew 安装。"
exit 1
fi
# 设置 TOMCAT_HOME 环境变量并添加到 .zshrc
export TOMCAT_HOME=/usr/local/Cellar/tomcat/$tomcat_version
add_or_update_zshrc "TOMCAT_HOME" "$TOMCAT_HOME"
# 启动一个新的 zsh 会话以应用环境变量更改
echo
echo "正在启动新的 zsh 会话以应用更改..."
zsh -c "source ~/.zshrc && echo '新的 TOMCAT_HOME 环境变量为:' && echo \$TOMCAT_HOME"
# 检查 Tomcat 用户配置文件
tomcat_users_file=$TOMCAT_HOME/libexec/conf/tomcat-users.xml
if grep -q "<user username=\"admin\" " $tomcat_users_file; then
echo
echo "Tomcat admin 用户已经存在。"
ask_to_continue "是否要覆盖这个配置?"
# 删除原来的 admin 用户
sed -i.bak '/<user username="admin" /d' $tomcat_users_file
fi
# 设置固定的 Tomcat admin 用户密码
tomcat_password="Test_password"
# 添加新的 Tomcat 用户
echo
echo "正在添加 admin 用户..."
echo "新密码为:$tomcat_password"
sed -i.bak "s|</tomcat-users>| <role rolename=\"manager-gui\"/>\n <role rolename=\"admin-gui\"/>\n <user username=\"admin\" password=\"$tomcat_password\" roles=\"manager-gui,admin-gui\"/>\n</tomcat-users>|" $tomcat_users_file
# 重启 Tomcat 服务
echo
echo "正在重启 Tomcat 服务..."
brew services restart tomcat
# 完成提示
echo
echo "操作完成!"
安全提示
脚本中使用了固定密码,建议仅在开发或测试环境中使用,或更改为强密码以提高安全性。