我的脚本中有以下命令。除了一个异常(exception),它工作得很好;它还匹配部分条目。我希望匹配准确。
a=mary jane uger dodo baba
b=mary
c=ma
if [[ "$a" =~ "$b" ]] && [ -n "$1" ]; then
echo it matches
else
echo it does not match
fi
因此,无论在 if 语句中我使用值 $b 还是 $c,它们都匹配。 我想确保条目完全匹配而不是部分匹配。所以 这应该可以工作并给出完全匹配。
if [[ "$a" =~ "$b" ]]
这不应该工作部分匹配
if [[ "$a" =~ "$c" ]]
有人可以帮忙吗?
这是我的确切代码
if [[ "$a" =~ "$b" ]]; then
echo something
fi
最佳答案
在末尾放置一个空格或结束 anchor 以进行正则表达式比较,以确保没有部分单词匹配:
a='mary jane uger dodo baba'
b='mary'
c='ma'
# will match
[[ "$a" =~ "$b"( |$) ]]
# won't match
[[ "$a" =~ "$c"( |$) ]]
关于bash - 使用 if 语句精确匹配 ?部分匹配也需要完全匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23086133/