On Thu, Feb 17, 2011 at 11:02 PM, Greg Wooledge <wool...@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.