Bashでは言及されていませんが、echo {{a,b}.{c,d}}
次に展開されます。{a.c} {a.d} {b.c} {b.d}
支柱の拡張Bashのマニュアルで私が実行する入力の種類を学びます。
私の質問は、なぜ出力がこのようなものではないのですか?AC広告BC BD
ベストアンサー1
のbash
拡張は、単語に範囲()またはカンマが含まれていない場合{word}
です。{word}
..
あなたの場合は、word
正確に2つの支柱の拡張があります。これは左から右に広がるため、最初に得られ、次に{a.{c,d}} {b.{c,d}}
最終{a.c} {a.d} {b.c} {b.d}
結果が得られます。
外部中括弧には範囲やカンマが含まれていないため、拡張されません。あなたは同様の結果を得るでしょう@{a,b}.{c,d}@
。
試してみると、{{a,b},{c,d}}
3つの拡張が提供されます(3段階の拡張、各ステップはブラケットセットの拡張)。まず、外側の括弧をに展開し、左の{a,b} {c,d}
括弧をに展開し、a b {c,d}
最後にa b c d
これが最終結果です。