On Thu, Feb 17, 2011 at 4:56 PM, Clark J. Wang <dearv...@gmail.com> wrote:
> On Thu, Feb 17, 2011 at 7:09 PM, Clark J. Wang <dearv...@gmail.com> wrote: > > > See following script output: > > > > bash-4.2# cat quoted-pattern.sh > > [[ .a == \.a* ]] && echo 1 # not quoted > > [[ aa =~ \.a* ]] && echo 2 # quoted > > > > [[ aa =~ \a. ]] && echo 3 # not quoted > > [[ aa =~ \a\. ]] && echo 4 # quoted > > bash-4.2# bash42 quoted-pattern.sh > > 1 > > 3 > > bash-4.2# > > > > From my understanding 1 2 3 4 should all be printed out. > > > > > The point is: ``Any part of the pattern may be quoted to force it to be > matched as a string.'' And backslash is one of bash's quoting chars. But > in my examples, a pattern with `\' in it sometimes is considered to be > quoted and sometimes unquoted. It's not clear to me what's the exact rule > to > tell if a pattern is quoted or not. > > aaah well the "it" in "force it" is the part, not the whole pattern. so if you do \.. the first . is a litteral dot, the second one matches any char.