Prhub

#1689 fix: quote `$MOE_LAYER_FREQ`

原始 PR 作者 lawrence-harmonic 合并时间 2026-03-22 16:29 文件变更 8 提交数 1 评论 0 代码增减 +8 / -8

执行摘要

修复 shell 脚本中 moe-layer-freq 参数因未引用变量而导致的 glob 扩展问题。

PR body 中指出:'If there is a file named "1", then --moe-layer-freq will be wrong.' 并提供了 shell 示例,展示了 glob 扩展问题:未引用的 $MOE_LAYER_FREQ(其值如 [1,1,1])会被扩展为文件名 '1',而非原数组字符串,导致 SLIME 上下文中模型参数错误。

这是一个简单的 bugfix,但展示了 shell 脚本中常见的 glob 扩展陷阱。对于负责脚本维护或模型配置的工程师,值得快速浏览以理解问题;对于其他开发者,可作为 shell 编程的学习案例,无需深入精读。

讨论亮点

没有 review 评论,变更直接合并,表明问题清晰且修复方案被认可,无讨论或争议。

实现拆解

在 8 个位于 scripts/models/ 目录下的模型配置 shell 脚本文件中,将 --moe-layer-freq $MOE_LAYER_FREQ 修改为 --moe-layer-freq "$MOE_LAYER_FREQ"。这些文件包括 deepseek-v3.sh、kimi-k2-thinking.sh、kimi-k2.sh、moonlight.sh、qwen3-235B-A22B.sh、qwen3-30B-A3B.sh、qwen3-next-80B-A3B.sh 和 qwen3.5-35B-A3B.sh,修改点一致,旨在防止 shell 的路径名扩展(glob)影响参数值。

文件 模块 状态 重要度
scripts/models/qwen3.5-35B-A3B.sh scripts/models modified 3.0
scripts/models/deepseek-v3.sh scripts/models modified 3.0
scripts/models/qwen3-235B-A22B.sh scripts/models modified 3.0

分析完成后,这里会展示 LLM 生成的相对完整源码片段和详细注释。

评论区精华

没有提炼出高价值讨论线程

当前评论区没有形成足够清晰的争议点或结论,后续有更多讨论时会体现在这里。

风险与影响

风险较低:添加双引号是标准 shell 脚本实践,应无副作用。但需注意,如果 $MOE_LAYER_FREQ 变量本身包含特殊字符或空格,双引号能正确处理;在给定上下文中,变量值应为数组表示(如 [1,1,1,...]),引号确保其作为整体传递。潜在风险是其他类似变量在脚本中若未引用,可能存在类似 glob 扩展问题。

对用户:修复了在存在文件 '1' 时模型启动参数错误的问题,提高配置可靠性和鲁棒性。对系统:无性能、安全或兼容性影响,仅是脚本层面的小修改。对团队:提醒了 shell 脚本中变量引用的重要性,可作为最佳实践参考,避免类似 bug。

shell 变量未引用 潜在的 glob 扩展错误

关联 Issue

未识别关联 Issue

当前没有检测到明确关联的 Issue 链接,后续同步到相关引用后会出现在这里。

完整报告

参与讨论