我目前正在尝试重现基本的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是如何解释这个问题的。
希望我的解释清楚易懂。