【发布时间】:2017-05-03 16:16:52
【问题描述】:
我正在尝试编写一个 bash 脚本来判断两个字符串是否具有相似的值。我制作了这个 bash 脚本:
#!/bin/bash
value="java.lang.NullPointerException"
if [[ "java.lang.NullPointerException" = "$value" || "java.lang.NullPointerException" == "$value"* ]]; then
echo "Match"
fi
基本上我想要实现的是,如果两个字符串的值相等或任一侧非常相似但中间有匹配的文本,则回显“匹配”。
我尝试了许多资源,但无法让这个示例正常工作。我看过了:
- In bash, how can I check if a string begins with some value?
- How to test that a variable starts with a string in bash?
- https://ubuntuforums.org/showthread.php?t=1118003
请注意,这些值最终将来自文本文件,因此这些值将以变量的形式出现。我尝试了不同的方法,但似乎没有得到它的工作。我只想让这个 if 语句正常工作。它适用于匹配文本,但不适用于任何一方的值。值可以是“java.lang.NullPointerException: Unexpected”或“Unexpected java.lang.NullPointerException”。
【问题讨论】:
-
你的操作数顺序错误:
in="test this"; [[ "$in" = "test"* ]] && echo ok工作正常(不需要额外的=测试);它是必须用作带有*的模式的最短值 -
谢谢。那行得通。
-
不客气!我建议您删除您的问题,因为它现在已解决,并且只是对您链接到的问题的答案的错误实施。