On Wed, Apr 26, 2017 at 1:13 PM, Florian Mayer <mayerflor...@me.com> wrote:
> $ echo $BASH_VERSION > 4.4.12(1)-release > $ echo $BASH_VERSION{nobraceexpansion} > 4.4.12(1)-release{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? > > it's because brace expansion occurs before parameter expansion so first echo $BASH_VERSION{brace,expansion} is expanded to echo $BASH_VERSIONbrace $BASH_VERSIONexpansion and these 2 variables are not set. you can verify with: $ BASH_VERSIONbrace=foo BASH_VERSIONexpansion=bar; echo $BASH_VERSION{brace,expansion} foo bar