Shell 脚本中“ = ~”运算符的含义

我发现了一个 shell 脚本,里面有代码

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

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

78367 次浏览

它是在 if 语句中允许使用正则表达式的 equals Tilde 运算符。

还有一个额外的二进制运算符,= ~ ,具有相同的 使用时,右边的字符串将优先级设置为 = = 和! = 该操作符被认为是扩展正则表达式并匹配 返回值是0,如果字符串 如果正则表达式为 语法不正确,条件表达式的返回值为 2.如果启用了 shell 选项 nocasematch,则执行匹配时不考虑字母字符的大小写。任何部分 可以引用模式以强制它作为字符串进行匹配。

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