Meaning of "=~" operator in shell script

RegexLinuxBashShell

Regex 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.

http://linux.die.net/man/1/bash

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
Questioncc4reView Question on Stackoverflow
Solution 1 - RegexMimiEAMView Answer on Stackoverflow