[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Inconsistence when checking if a pattern is quoted or not for `==' a
From: |
Davide Brini |
Subject: |
Re: Inconsistence when checking if a pattern is quoted or not for `==' and `=~' in [[ ]] |
Date: |
Thu, 17 Feb 2011 14:24:13 +0000 |
User-agent: |
|
On Thu, 17 Feb 2011 22:35:31 +0800
"Clark J. Wang" <dearvoid@gmail.com> wrote:
> On Thu, Feb 17, 2011 at 9:20 PM, Andreas Schwab
> <schwab@linux-m68k.org>wrote:
>
> > "Clark J. Wang" <dearvoid@gmail.com> writes:
> >
> > > 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.
> >
> > "aa" contains no period, so why should it be matched?
> >
> >
> If it should not be matched why I got 3 printed out?
You're regexp matching "aa" against "a." (I believe the spurious backslash
is ignored), which of course results in a match.
As in:
$ echo aa | grep -E 'a.'
aa
--
D.