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.