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