On Wed, Feb 16, 2011 at 9:59 AM, Chet Ramey <chet.ra...@case.edu> wrote:

> On 2/15/11 6:18 AM, Clark J. Wang wrote:
> > For following script:
> >
> > var='[hello'
> > echo "${var//[/}"
> >
> > With bash 4.1 it outputs hello but with 4.2 it outputs [hello . And bash
> 4.2
> > with compat41 on still outputs [hello . Bug? Or Bug fixed?
>
> It's a bug, and I will release a patch.  In the meantime, see if the
> attached patch does the right thing on your platform.
>
> The patch fixed this simple example but it does not work for more
complicated scenario:

bash# cat foo.sh
var='[hello'
echo "${var//[/}"

red='\[\e[0;31m\]'
echo "${red//\\[\\e/}"
bash# /usr/local/bash-4.1.9/bin/bash foo.sh
hello
[0;31m\]
bash# /usr/local/bash-4.2.0/bin/bash foo.sh
[hello
\[\e[0;31m\]
bash# /usr/local/bash-4.2.0-fix/bin/bash foo.sh
hello
\[\e[0;31m\]
bash#

Chet
> --
> ``The lyf so short, the craft so long to lerne.'' - Chaucer
>                 ``Ars longa, vita brevis'' - Hippocrates
> Chet Ramey, ITS, CWRU    c...@case.edu
> http://cnswww.cns.cwru.edu/~chet/
>



-- 
Clark

Reply via email to