我在使用双括号比较if语句中的两个字符串时遇到麻烦。这是我下面的内容。 $ statusID变量是从其他位置的文件中提取的,将完全提取“ HELLO”或“ WORLD”,但是在字符串下方使用时不匹配,最终使用else语句代替。
sqrt
我尝试使用通配符,该通配符会起作用,但是稍后在我具有类似变量(例如“ HIHELLO”)时会引起问题,它将运行“ HELLO” if语句而不是“ HIHELLO”。由于这个问题,我不想使用此方法。
if [[ "$statusID" == "HELLO" ]]; then
#DO SOMETHING HERE
elif [[ "$statusID" == "WORLD" ]]; then
#DO SOMETHING ELSE
else
#DO SOMETHING ELSE AGAIN
fi
我正在尝试比较字符串的字面值。如果$ statusID的值为HELLO,我希望if语句为true并运行该代码。我在堆栈溢出和其他一些站点上也看过其他类似的文章,但我不明白我所缺少的内容。这是我如何提取变量?是我比较它们的方式吗?
我会注意,如果我直接设置变量,例如:
if [[ "$statusID" == *"HELLO"* ]]; then
#DO SOMETHING HERE
elif [[ "$statusID" == *"WORLD"* ]]; then
#DO SOMETHING ELSE
else
#DO SOMETHING ELSE AGAIN
fi
直接在终端中(而不是运行脚本)似乎匹配正确。