function old new delta expand_vars_to_list 2129 2197 +68 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
		
			
				
	
	
		
			51 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			51 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
Brace Expansion
 | 
						|
 | 
						|
Brace expansion is a mechanism by which arbitrary strings may be gener-
 | 
						|
ated.   This  mechanism is similar to pathname expansion, but the file-
 | 
						|
names generated need not exist.  Patterns to be brace expanded take the
 | 
						|
form of an optional preamble, followed by either a series of comma-sep-
 | 
						|
arated strings or a sequence expression between a pair of braces,  fol-
 | 
						|
lowed  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,
 | 
						|
a{d,c,b}e expands into `ade ace abe'.
 | 
						|
 | 
						|
A  sequence  expression takes the form {x..y}, where x and y are either
 | 
						|
integers or single characters.  When integers are supplied, the expres-
 | 
						|
sion  expands  to each number between x and y, inclusive.  When charac-
 | 
						|
ters are supplied, the expression expands  to  each  character  lexico-
 | 
						|
graphically between x and y, inclusive.  Note that both x and y must be
 | 
						|
of the same type.
 | 
						|
 | 
						|
Brace expansion is performed before any other expansions, and any char-
 | 
						|
acters  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.
 | 
						|
 | 
						|
A  correctly-formed  brace  expansion must contain unquoted opening and
 | 
						|
closing braces, and at least one unquoted comma  or  a  valid  sequence
 | 
						|
expression.   Any incorrectly formed brace expansion is left unchanged.
 | 
						|
A { or , may be quoted with a backslash to prevent its being considered
 | 
						|
part  of  a brace expression.  To avoid conflicts with parameter expan-
 | 
						|
sion, the string ${ is not considered eligible for brace expansion.
 | 
						|
 | 
						|
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}}
 | 
						|
 | 
						|
Brace  expansion  introduces  a  slight incompatibility with historical
 | 
						|
versions of sh.  sh does not treat opening or closing braces  specially
 | 
						|
when  they  appear as part of a word, and preserves them in the output.
 | 
						|
Bash removes braces from words as a  consequence  of  brace  expansion.
 | 
						|
For  example,  a word entered to sh as file{1,2} appears identically in
 | 
						|
the output.  The same word is output as file1 file2 after expansion  by
 | 
						|
bash.   If strict compatibility with sh is desired, start bash with the
 | 
						|
+B option or disable brace expansion with the +B option to the set com-
 | 
						|
mand
 |