以两个变量为例:$a="bar/var1" 和 $b="var" 我想检查 $b 的内容是否在 $a 中,而不仅仅是 $b 的每个字符,而是它的确切内容。
我试过:
if [[ $a =~ .*$b*. ]]
if [[ "$a" =~ .*"$b"*. ]]
if [[ "$a" = *"$b"* ]
]if [[ "$a" = *$b* ]]
if [[ "$a" == *$b* ]]
但问题总是一样的,如果 $b 是“rav”或“var”,结果是相同的,但我只希望它为“var”时为真。
答案1
#!/bin/bash
a="bar/var1"
b="var"
if [[ "$a" == *"$b"* ]]; then
echo "Got it"
fi
b="rav"
if [[ "$a" == *"$b"* ]]; then
echo "Got it"
fi
您的尝试列表中包含以下内容:
if [[ "$a" = *"$b"* ]]
你走在正确的轨道上,但你需要两个 = 符号,而不是一个。