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: Pierre Gaston
Subject: Re: Inconsistence when checking if a pattern is quoted or not for `==' and `=~' in [[ ]]
Date: Thu, 17 Feb 2011 17:07:40 +0200

On Thu, Feb 17, 2011 at 4:56 PM, Clark J. Wang <dearvoid@gmail.com> wrote:

> On Thu, Feb 17, 2011 at 7:09 PM, Clark J. Wang <dearvoid@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.


reply via email to

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