我想使用正则表达式检查变量是否具有有效年份。阅读bash 手册,我知道我可以使用运算符 =~
查看下面的示例,我希望看到“不正常”,但我看到“正常”。我究竟做错了什么?
i="test"
if [ $i=~"200[78]" ]
then
echo "OK"
else
echo "not OK"
fi
我想使用正则表达式检查变量是否具有有效年份。阅读bash 手册,我知道我可以使用运算符 =~
查看下面的示例,我希望看到“不正常”,但我看到“正常”。我究竟做错了什么?
i="test"
if [ $i=~"200[78]" ]
then
echo "OK"
else
echo "not OK"
fi
它在 3.1 和 3.2 之间进行了更改:
这是对自 bash-3.1 发布以来添加到 bash-3.2 的新功能的简要描述。
将字符串参数引用到 [[ 命令的 =~ 运算符现在强制字符串匹配,与其他模式匹配运算符一样。
因此,使用它不带引号:
i="test"
if [[ $i =~ 200[78] ]] ; then
echo "OK"
else
echo "not OK"
fi
您需要在运算符周围有空格 =~
我=“测试” 如果 [[ $i =~ "200[78]" ]]; 然后 回声“确定” 别的 回声“不好” 菲