Bash 扩展的 globbing 错误?

Bash extended globbing bug?

一个目录下有三个文件:

ab2 ab23 ab3

当我执行时:

ls ab+(2|3)

它显示:

ab2 ab23 ab3

而不是仅 ab2ab3

知道为什么会这样吗?这是一个错误吗?

这不是错误。 +(pattern) 匹配一个 或更多 个模式。 +(2|3) 将匹配任意组合和任意数量的 232323322223333223232323——任何一个。

如果你想要不重复的严格交替,将 + 更改为 @:

ab@(2|3)

(或者只使用ab[23]。那甚至不需要extglob。)