相邻brace expansions 得出其元素的笛卡尔积:
$ echo {a,b}{c,d}{e,f}
ace acf ade adf bce bcf bde bdf
我想知道这是否是括号扩展的特殊功能,或者它是由以下规则引起的,还是由man bash
中记录的任何其他规则引起的:
要扩展的模式采用可选的序言形式,然后 通过一系列逗号分隔的字符串或之间的序列表达式 一对大括号,后跟一个可选的附言。前缀是前缀 大括号中包含的每个字符串,然后附加脚本 到每个结果字符串,从左到右扩展。
如果确实是由该规则引起的,那么它将如何工作?
在我看来,您需要一个 单独的规则,例如:
当序言本身是括号扩展时,每个元素 相对于右括号扩展而扩展,然后结果 按从左到右的顺序连接在一起
也就是说,{a,b}{c,d}
是a{c,d}
和b{c,d}
的串联。
但是我在man bash
的“括号扩展”说明中看不到任何此类规则
明确证明了这种行为。
我想念它吗?