On Tue, Feb 15, 2011 at 9:54 PM, Dennis Williamson <dennistwilliam...@gmail.com> wrote: > On Tue, Feb 15, 2011 at 9:16 PM, Clark J. Wang <dearv...@gmail.com> wrote: >> 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 >> > > Also, 4.0.33 and 3.2.0 pass, 2.05b and 4.2.0 fail. >
I should have been clear that that applies to the more complex example.