shell脚本中“=〜”运算符的含义[重复]

Posted

技术标签:

【中文标题】shell脚本中“=〜”运算符的含义[重复]【英文标题】:Meaning of "=~" operator in shell script [duplicate] 【发布时间】:2012-09-09 09:38:56 【问题描述】:

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

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

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

【问题讨论】:

你使用 for 循环的方式,你应该把你的循环变量命名为word 而不是line 【参考方案1】:

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

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

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

【讨论】:

以上是关于shell脚本中“=〜”运算符的含义[重复]的主要内容,如果未能解决你的问题,请参考以下文章

cron 运行的 shell 脚本中的 echo 语句 [重复]

技能篇:shell教程及脚本编写

shell入门笔记1:执行方式运行方式变量替换运算符

shell 脚本 ${1:-"false"}的含义

如何使用if来查看文件在shell bash脚本中是不是有后缀[重复]

Shell编程—构建基本脚本