我正在尝试编写一个bash脚本来判断两个字符串是否具有相似的值。我制作了这个bash脚本:
#!/bin/bash
value="java.lang.NullPointerException"
if [[ "java.lang.NullPointerException" = "$value" || "java.lang.NullPointerException" == "$value"* ]]; then
echo "Match"
fi
基本上我想要的是,如果两个字符串具有相同的值或非常相似,但在中间有匹配的文本,则回显“匹配”。
我尝试了很多资源,但无法让这个例子起作用。我看了看:
请注意,这些值最终会来自文本文件,因此值将采用变量形式。我尝试了不同的方法,但似乎没有让它工作。我只是想让这个if语句起作用。它适用于匹配文本,但不适用于任何一方的值。值可能是“java.lang.NullPointerException:Unexpected”或“Unexpected java.lang.NullPointerException”。
答案 0 :(得分:0)
#!/bin/bash
value="java.lang.NullPointerException" #or java.lang.NullPointerException: Unexpected
if [[ $value == *"java.lang.NullPointerException"* ]];
then
echo "Match"
fi
答案 1 :(得分:0)
用于通配符匹配的简单且可移植(POSIX兼容)技术是使用case
语句而不是if
。对于您的示例,这看起来像
#!/bin/sh
value="java.lang.NullPointerException"
case "$value" in
*java.lang.NullPointerException*) echo Match;;
esac