我想使用正则表达式检查一个变量是否有一个有效的年份。读取我理解的bash manual,我可以使用操作符=~
看看下面的例子,我期望看到"not OK“,但我看到的是"OK”。我做错了什么?
i="test"
if [ $i=~"200[78]" ]
then
echo "OK"
else
echo "not OK"
fi
发布于 2008-11-20 10:45:17
它在3.1和3.2之间进行了更改:
这是对自bash-3.1发布以来添加到bash-3.2中的新特性的简要描述。
现在,与其他模式匹配运算符一样,将字符串参数引用到[[ command's =~运算符将强制进行字符串匹配。
因此,请不要使用引号,例如:
i="test"
if [[ $i =~ 200[78] ]] ; then
echo "OK"
else
echo "not OK"
fi
https://stackoverflow.com/questions/304864
复制相似问题