我目前正在尝试重现基本的 shell 行为,更具体地说是 globbing 行为。我正在测试带有花括号的命令,发现这种行为我不明白。首先,我正在工作的目录的内容如下:
1abc 2abc 3abc abc1 abc2 abc3
然后,我输入了以下命令 : ls {[1-3],[a-c]}*
,它按预期返回了上面的所有文件。
最后,我尝试了这个命令 : ls {{,[1-3]},[a-c]}*
,正如你所看到的,它有叠瓦状的花括号。现在我不明白的是这个命令的返回,因为它给了我这个:1abc 1abc 2abc 2abc 3abc 3abc abc1 abc1 abc2 abc2 abc3 abc3
如您所见,所有文件都返回了两次,我无法弄清楚 shell 是如何解释这个的。
我希望我的解释很清楚。