[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Brace expansion fail compilation

From: Florian Mayer
Subject: Brace expansion fail compilation
Date: Wed, 26 Apr 2017 12:13:27 +0200

$ echo $BASH_VERSION{nobraceexpansion}
$ echo ${BASH_VERSION}{brace,expansion}
4.4.12(1)-releasebrace 4.4.12(1)-releaseexpansion
$ echo $BASH_VERSION{brace,expansion}
=> no output. Unexpected
$ echo $BASH_VERSIONfoo
=> no output as expected

Why does
$ echo $BASH_VERSION{brace,expansion}
produce no output?

Comment from braces.c:

/* Basic idea:
   Segregate the text into 3 sections: preamble (stuff before an open brace),
   postamble (stuff after the matching close brace) and amble (stuff after
   preamble, and before postamble).  Expand amble, and then tack on the
   expansions to preamble.  Expand postamble, and tack on the expansions to
   the result so far.

"Expand amble, and then tack on the expansions to preamble.“ made me expect two 
- No expansion of $BASH_VERSION is performed and $BASH_VERSION is used to 
append the pieces from the expansion of amble
- Expansion will be performed like it should be the case, because „{„ is 
obviously a parameter expansion terminal character as the line
$ echo $BASH_VERSION{nobraceexpansion}
shows, because this line really does expand $BASH_VERSION

reply via email to

[Prev in Thread] Current Thread [Next in Thread]