Look at this if block:#!/bin/bashstr=m.mif [[ ${str} =~ m\.m ]]; then    echo matchedelse    echo not matched    exit 1fiexit 0This should print matched, but it doesn't. Where am I going wrong?
Using regex inside if clause in bash
bash;regular expression
You need to remove the quoting in the regex match.if [[ ${str} =~ m\.m ]]; thenFrom the bash man page:[...] An  additional  binary operator, =~, is available, with the same                precedence as == and !=.  When it is used,  the  string  to  the                right  of the operator is considered an extended regular expres                sion and matched accordingly (as in regex(3)).  The return value                is 0 if the string matches the pattern, and 1 otherwise.  If the                regular expression is syntactically incorrect,  the  conditional                expression's return value is 2.  If the shell option nocasematch                is enabled, the match is performed without regard to the case of                alphabetic characters.  Any part of the pattern may be quoted to                force it to be matched  as  a  string.So with the quotes, you're using good-old string matching.If you need spaces in the pattern, just escape them:str=m   mif [[ ${str} =~ m\ +m ]]; then