Neo*_*rns 7 bash brace-expansion
在 bash 中
echo {{a,b}.{c,d}}
扩展为
{a.c} {a.d} {b.c} {b.d}
虽然在 bash 手册中没有提到我所做的输入类型的大括号扩展
我的问题是为什么输出不像这个ac ad bc bd
Kus*_*nda 11
在 中bash, 的扩展{word}是{word}当单词不包含范围 ( ..) 或逗号时。
在您的情况下,word恰好包含两个大括号扩展。这些从左到右展开,所以你得到,第一个{a.{c,d}} {b.{c,d}},然后{a.c} {a.d} {b.c} {b.d}哪个是最终结果。
请注意,外部大括号没有展开,因为它们不包含范围或逗号。你会得到类似的结果@{a,b}.{c,d}@。
如果您尝试过,{{a,b},{c,d}}您将有三个扩展(扩展分三个步骤完成,每个扩展一组大括号)。先外面的进{a,b} {c,d},然后左边的进a b {c,d},最后a b c d,就是最后的结果。
另请参阅:为什么“cat {foo}”不输出 foo,但“cat {foo,bar}”会输出?
| 归档时间: |
|
| 查看次数: |
411 次 |
| 最近记录: |