#2465·cobra

在以 `--flag value` 形式提供时, Bash 完成功能不会清除所需的标志

作者: chetanugale创建于 2026年7月27日更新于 2026年7月27日

页:1

眼镜蛇所生成的巴什完成可以仍然被限制在需要的旗子上,即使已经以正常的两字形提供了需要的旗.

这使得完成继续表现,仿佛所需的旗帜仍然缺失,而不是扩展为命令的全部有效旗帜.

预期行为

一旦提供了所需的旗帜,巴什完成应将其视为是否满足输入:

  • `-旗=值'
  • " 旗下价值 "

在此之后,完成工作不应再仅限于规定的旗帜.

实际行为

当需要的旗被以两字形输入时,生成的巴什完成脚本并不总是能够清除需要的旗内跟踪. 因此,完成可以继续表明只有所需的子集旗帜.

影响

这对使用需要的旗帜的命令造成了误导和不完整的巴什完成行为. 用户可能看到不反映当前命令状态的补全输出.

建议检查的地区

Bash 完成生成和处理所需旗帜的逻辑,特别是:

  • 如何向生成的脚本中排放所需的旗帜
  • 生成的脚本跟踪已进入的旗帜
  • Bash完成如何区分-旗=值'和-旗=值'

建议回归覆盖范围

增加Bash完成测试,以验证:

  • 以 " -- -- -- -- -- 旗 -- -- 价值 " 形式输入的必要旗帜被认定满足
  • 以 " -- -- 旗面价值 " 输入的必要旗帜确认满足
  • 在两种表格之后完成,不再仅限于所需的旗帜