#!/bin/bash # 确保在脚本所在目录执行 cd "$(dirname "$0")" SCRIPT_DIR="$(pwd)" echo "当前工作目录: $SCRIPT_DIR" # 获取项目根目录 ROOT_DIR="$(cd ../.. && pwd)" echo "项目根目录: $ROOT_DIR" # 加载环境变量 source "$ROOT_DIR/environment.sh" echo "开始替换Gateway配置文件中的环境变量..." # 定义源配置文件和目标目录 SOURCE_FILE="$SCRIPT_DIR/application.yml" TEMP_DIR="$SCRIPT_DIR/temp" TARGET_FILE="$TEMP_DIR/application.yml" # 检查源配置文件是否存在 if [ ! -f "$SOURCE_FILE" ]; then echo "错误: 配置文件 $SOURCE_FILE 不存在!" exit 1 fi # 创建临时目录 rm -rf "$TEMP_DIR" mkdir -p "$TEMP_DIR" echo "处理文件: application.yml" # 读取原始文件内容 content=$(cat "$SOURCE_FILE") # 获取environment.sh中所有环境变量 env_vars=$(grep -E "^export [A-Z_]+" "$ROOT_DIR/environment.sh" | sed 's/export //') # 逐个替换环境变量 for var in $env_vars; do var_name=$(echo $var | cut -d= -f1) var_value=${!var_name} if [ ! -z "$var_value" ]; then # 使用简单的变量替换方法 pattern="\\\${$var_name}" echo " 替换变量: ${pattern} -> $var_value" content=$(echo "$content" | sed "s|${pattern}|$var_value|g") fi done # 写入处理后的内容到目标文件 echo "$content" > "$TARGET_FILE" echo "环境变量替换完成! 替换后的文件位于 $TARGET_FILE" echo "此文件将在启动Gateway容器时使用"