我的脚本中有以下命令。除了一个例外,它工作正常;它也匹配部分条目。我希望这场比赛准确无误。
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
答案 0 :(得分:1)
最后放置一个空格或结尾锚点进行正则表达式比较,以确保没有部分单词匹配:
a='mary jane uger dodo baba'
b='mary'
c='ma'
# will match
[[ "$a" =~ "$b"( |$) ]]
# won't match
[[ "$a" =~ "$c"( |$) ]]
答案 1 :(得分:0)
z='\>'
[[ $a =~ $b$z ]] # true
[[ $a =~ $c$z ]] # false