在shell脚本中 "=~" 运算符的含义是什么?

77

我遇到一个shell脚本,其中的代码是

for line in $LIST_ARRAY;do
if [[ $LIST_ARRAY =~ $line ]]
then
echo "true"
....
...
.

在这种情况下,=~ 有什么用途?


2
你使用那个for循环的方式,应该将循环变量的名称命名为word而不是line - glenn jackman
1个回答

89

在if语句中使用正则表达式的关键是等于波浪号操作符(Equal Tilde operator)。

还有一个二元操作符“=~”,优先级与“==”和“!=”相同。当它被使用时,操作符右侧的字符串被视为扩展正则表达式并相应地进行匹配(如regex(3)中所述)。如果字符串匹配模式,则返回值为0,否则返回1。如果正则表达式在语法上不正确,则条件表达式的返回值为2。如果启用了shell选项nocasematch,则匹配将忽略字母字符的大小写。可以引用模式的任何部分以强制将其匹配为字符串。

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接