GNU Info

Info Node: (bashref.info)Brace Expansion

(bashref.info)Brace Expansion


Next: Tilde Expansion Up: Shell Expansions
Enter node , (file) or (file)node

Brace Expansion
---------------

   Brace expansion is a mechanism by which arbitrary strings may be
generated.  This mechanism is similar to FILENAME EXPANSION (Note:
Filename Expansion), but the file names generated need not exist.
Patterns to be brace expanded take the form of an optional PREAMBLE,
followed by a series of comma-separated strings between a pair of
braces, followed by an optional POSTSCRIPT.  The preamble is prefixed
to each string contained within the braces, and the postscript is then
appended to each resulting string, expanding left to right.

   Brace expansions may be nested.  The results of each expanded string
are not sorted; left to right order is preserved.  For example,
     bash$ echo a{d,c,b}e
     ade ace abe

   Brace expansion is performed before any other expansions, and any
characters special to other expansions are preserved in the result.  It
is strictly textual.  Bash does not apply any syntactic interpretation
to the context of the expansion or the text between the braces.  To
avoid conflicts with parameter expansion, the string `${' is not
considered eligible for brace expansion.

   A correctly-formed brace expansion must contain unquoted opening and
closing braces, and at least one unquoted comma.  Any incorrectly
formed brace expansion is left unchanged.

   This construct is typically used as shorthand when the common prefix
of the strings to be generated is longer than in the above example:
     mkdir /usr/local/src/bash/{old,new,dist,bugs}
   or
     chown root /usr/{ucb/{ex,edit},lib/{ex?.?*,how_ex}}


automatically generated by info2www version 1.2.2.9