在以 `--flag value` 形式提供时, Bash 完成功能不会清除所需的标志
作者: chetanugale创建于 2026年7月27日更新于 2026年7月27日
页:1
眼镜蛇所生成的巴什完成可以仍然被限制在需要的旗子上,即使已经以正常的两字形提供了需要的旗.
这使得完成继续表现,仿佛所需的旗帜仍然缺失,而不是扩展为命令的全部有效旗帜.
预期行为
一旦提供了所需的旗帜,巴什完成应将其视为是否满足输入:
- `-旗=值'
- " 旗下价值 "
在此之后,完成工作不应再仅限于规定的旗帜.
实际行为
当需要的旗被以两字形输入时,生成的巴什完成脚本并不总是能够清除需要的旗内跟踪. 因此,完成可以继续表明只有所需的子集旗帜.
影响
这对使用需要的旗帜的命令造成了误导和不完整的巴什完成行为. 用户可能看到不反映当前命令状态的补全输出.
建议检查的地区
Bash 完成生成和处理所需旗帜的逻辑,特别是:
- 如何向生成的脚本中排放所需的旗帜
- 生成的脚本跟踪已进入的旗帜
- Bash完成如何区分
-旗=值'和-旗=值'
建议回归覆盖范围
增加Bash完成测试,以验证:
- 以 " -- -- -- -- -- 旗 -- -- 价值 " 形式输入的必要旗帜被认定满足
- 以 " -- -- 旗面价值 " 输入的必要旗帜确认满足
- 在两种表格之后完成,不再仅限于所需的旗帜
内容来源: spf13/cobra