# PR #1689 完整报告

- 仓库：`THUDM/slime`
- 标题：fix: quote `$MOE_LAYER_FREQ`
- 合并时间：2026-03-22 16:29
- 原文链接：http://prhub.com.cn/THUDM/slime/pull/1689

---

## 执行摘要
本次 PR 修复了 SLIME 仓库中多个模型配置脚本的 shell 变量引用问题，当文件系统存在特定文件（如名为 "1" 的文件）时，未引用的 $MOE_LAYER_FREQ 变量会导致参数解析错误，进而引发模型启动失败。通过添加双引号，确保参数正确传递，解决了这一潜在问题，并提升了脚本的鲁棒性。

## 功能与动机
动机源于 shell 的 glob 扩展机制：如果当前目录有文件名为 "1"，未引用的 `$MOE_LAYER_FREQ`（其值如 `[1,1,1]`）会被扩展为文件名 "1"，而非原数组字符串，导致 `--moe-layer-freq` 参数错误。PR body 通过示例清晰展示了此问题，并指出在 SLIME 上下文中，这会使得模型配置参数不正确，影响启动流程。

## 实现拆解
修改涉及 8 个位于 `scripts/models/` 的 shell 脚本文件，均将 `--moe-layer-freq $MOE_LAYER_FREQ` 行改为 `--moe-layer-freq "$MOE_LAYER_FREQ"`。关键变更如下表所示：

| 文件路径 | 修改前 | 修改后 |
|----------|--------|--------|
| scripts/models/qwen3.5-35B-A3B.sh | `--moe-layer-freq $MOE_LAYER_FREQ` | `--moe-layer-freq "$MOE_LAYER_FREQ"` |
| scripts/models/deepseek-v3.sh | `--moe-layer-freq $MOE_LAYER_FREQ` | `--moe-layer-freq "$MOE_LAYER_FREQ"` |
| 其他类似文件（共 6 个） | 同上 | 同上 |

所有修改点一致，旨在防止 shell 路径名扩展干扰参数传递，确保 $MOE_LAYER_FREQ 变量值作为整体字符串处理。

## 评论区精华
本 PR 没有 review 评论，变更直接合并，表明问题清晰且修复方案被认可，无讨论或争议，简化了审查流程。

## 风险与影响
- **风险**：添加引号是安全实践，但需确保 $MOE_LAYER_FREQ 变量值在引号内仍为有效字符串；若其他脚本变量未类似引用，可能存在类似 glob 扩展风险，但整体风险低。
- **影响**：修复了特定环境下的模型配置错误，提升脚本鲁棒性和用户体验；对系统无性能或安全影响，但提醒团队在 shell 脚本中始终引用变量以避免意外扩展。

## 关联脉络
与历史 PR #1719（修复 Qwen3-235B-A22B 启动脚本的 JSON 格式）类似，都针对模型脚本的 bug 修复，反映了仓库中脚本维护的持续优化趋势。这些变更虽小，但共同提升了配置可靠性和开发者体验，强调了在基础设施代码中注重细节的重要性。