一尘不染

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

linux

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

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

什么是使用=~在这种情况下?


阅读 258

收藏
2020-06-03

共1个答案

一尘不染

等于Tilde运算符允许在if语句中使用正则表达式。

可以使用附加的二进制运算符=〜,其优先级与==和!=相同。使用它时,运算符右边的字符串被视为扩展的正则表达式,并进行了相应的匹配(如regex(3)中一样)。如果字符串与模式匹配,则返回值为0,否则为1。如果正则表达式在语法上不正确,则条件表达式的返回值为2。如果启用了shell选项nocasematch,则执行匹配时将不考虑字母字符的大小写。可以引用模式的任何部分以强制将其匹配为字符串。

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

2020-06-03