我遇到了一个代码为
的shell脚本for line in $LIST_ARRAY;do
if [[ $LIST_ARRAY =~ $line ]]
then
echo "true"
....
...
.
在这种情况下=~
有什么用?
答案 0 :(得分:52)
它是Equal Tilde运算符,允许在if语句中使用正则表达式。
可以使用另外的二元运算符=〜 优先级为==和!=。使用时,右边的字符串 运算符被视为扩展正则表达式并匹配 因此(如正则表达式(3))。如果是字符串,则返回值为0 匹配模式,否则为1。如果是正则表达式 在语法上不正确,条件表达式的返回值是 2.如果启用了shell选项nocasematch,则执行匹配而不考虑字母字符的情况。任何一部分 可以引用模式以强制它匹配为字符串。