bug-bash
[Top][All Lists]
Advanced

[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.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]