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

时间:2012-09-17 07:21:45

标签: regex linux bash shell

我遇到了一个代码为

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

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

1 个答案:

答案 0 :(得分:52)

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

  

可以使用另外的二元运算符=〜   优先级为==和!=。使用时,右边的字符串   运算符被视为扩展正则表达式并匹配   因此(如正则表达式(3))。如果是字符串,则返回值为0   匹配模式,否则为1。如果是正则表达式   在语法上不正确,条件表达式的返回值是   2.如果启用了shell选项nocasematch,则执行匹配而不考虑字母字符的情况。任何一部分   可以引用模式以强制它匹配为字符串。

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