Bash에서는 언급되지 않았지만 echo {{a,b}.{c,d}}
다음으로 확장됩니다 .{a.c} {a.d} {b.c} {b.d}
버팀대 확장Bash 매뉴얼에서 내가 수행하는 입력 유형에 대해 알아보세요.
내 질문은 왜 출력이 이와 같지 않습니까?AC 광고 BC BD
답변1
에서 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}}
세 가지 확장이 제공됩니다(3단계 확장, 각 단계는 브래킷 세트 확장). 먼저 외부 괄호를 로 확장한 {a,b} {c,d}
다음 왼쪽 괄호를 로 확장하고 a b {c,d}
마지막으로 a b c d
이것이 최종 결과입니다.