Meaning of "=~" operator in shell script
RegexLinuxBashShellRegex Problem Overview
I came across a shell script where the code is
for line in $LIST_ARRAY;do
if [[ $LIST_ARRAY =~ $line ]]
then
echo "true"
....
...
.
What is the use of =~
in this case?
Regex Solutions
Solution 1 - Regex
it's the Equal Tilde operator that allows the use of regex in an if statement.
> 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 expression 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.