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: Clark J. Wang
Subject: Re: Inconsistence when checking if a pattern is quoted or not for `==' and `=~' in [[ ]]
Date: Thu, 17 Feb 2011 23:06:44 +0800

On Thu, Feb 17, 2011 at 11:02 PM, Greg Wooledge <wooledg@eeg.ccf.org> wrote:

> On Thu, Feb 17, 2011 at 10:56:21PM +0800, Clark J. Wang wrote:
> > 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.
>
> Your life will be greatly simplified if you observe the following rule of
> thumb for =~ matching:
>
>  ALWAYS put the pattern into a variable.
>
> r='whatever you want'
> if [[ $foo =~ $r ]]; then ...
>
> This works around the behavior change that occurred during the 3.x series,
> as well as all your quoting concerns and questions.
>

I really know that's the best practice. I just want to make it clear if bash
itself is doing right.


reply via email to

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