From 3b3ad882a472bc858bbfa31f733684f6c1e71ebd Mon Sep 17 00:00:00 2001 From: root Date: Mon, 4 May 2026 20:02:46 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=8F=98=E9=87=8F=E6=8C=81=E4=B9=85?= =?UTF-8?q?=E5=8C=96=20heredoc=20=E6=94=B9=E7=94=A8=E6=97=A0=E5=BC=95?= =?UTF-8?q?=E5=8F=B7=E6=A8=A1=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 致命 Bug:Step 1.1 的 cat > /tmp/env_vars.sh 使用 << 'VFEOF' (单引号 heredoc),导致 ${VARIABLE} 全部写为字面量。 后续 source 后所有变量为空字符串。 修复:<< VFEOF → << EOF(无引号),bash 在写入时即展开 变量值为实际字符串(如 'qq-agent' 而非文字 '${NEW_AGENT_ID}')。 --- README.md | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 7ac74e7..aa8b457 100644 --- a/README.md +++ b/README.md @@ -125,7 +125,7 @@ print(cfg.get('gateway', {}).get('auth', {}).get('token', '')) " 2>/dev/null) # ─── 持久化到文件,供后续步骤使用 ─── -cat > /tmp/env_vars.sh << 'VFEOF' +cat > /tmp/env_vars.sh << EOF NEW_AGENT_ID='${NEW_AGENT_ID}' AGENT_WORKSPACE='${AGENT_WORKSPACE}' SHARED_DIR='${SHARED_DIR}' @@ -133,14 +133,13 @@ NAPCAT_HOST='${NAPCAT_HOST}' NAPCAT_API_PORT='${NAPCAT_API_PORT}' QQREBOT_HOST='${QQREBOT_HOST}' GATEWAY_TOKEN='${GATEWAY_TOKEN}' -VFEOF +EOF echo "变量已写入 /tmp/env_vars.sh,后续步骤请先 source 该文件" ``` -> ⚠️ 持久化文件 `/tmp/env_vars.sh` 中的 `${}` 使用**单引号 heredoc 包裹**, -> 以确保 bash 在当前阶段立即展开(而非写入文字 `${NEW_AGENT_ID}`)。 -> 后续步骤每次执行 bash 代码块前,应先 `source /tmp/env_vars.sh`。 +> 持久化文件使用 **无引号 heredoc**(`<< EOF`),bash 在 Step 1.1 执行时即展开 `${}` 变量。 +> 后续步骤每次执行 bash 代码块前,先 `source /tmp/env_vars.sh` 恢复环境。 #### 1.2 向用户确认