鉴于这些文件:
$ ls
file1 file2 file21 file3 fileFoo
我期望这种 globbing 模式(启用 extglob 的 bash):
$ ls file?({1..2}|Foo)
输出:
file1 file2 fileFoo
但相反,我fileFoo
列出了两次:
$ ls file?({1..2}|Foo)
file1 file2 fileFoo fileFoo
“或”的两边都不会产生意想不到的结果:
$ ls file?({1..2})
file1 file2
$ ls file?(Foo)
fileFoo
那么为什么fileFoo
在我“或”表达式时打印两次,以及匹配范围(例如上面的 1-2 但可能是 17-593 或任何其他范围)或其他一些不相关的字符串(例如上面的 Foo )?
$ bash --version
GNU bash, version 4.4.12(3)-release (x86_64-unknown-cygwin)