Ich versuche, ein Bash-Skript zu schreiben, die zeigen wird, ob zwei Strings von ähnlichem Wert sind. Ich habe diese Bash-Skript erzeugt:Ubuntu Bash Script String enthält ähnliche Wörter
#!/bin/bash
value="java.lang.NullPointerException"
if [[ "java.lang.NullPointerException" = "$value" || "java.lang.NullPointerException" == "$value"* ]]; then
echo "Match"
fi
Im Grunde, was ich achive will, ist, dass, wenn zwei Strings gleichwertig sind oder eine sehr ähnlichen beiden Seiten aber mit Text in der Mitte passenden dann „Match“ echo.
Ich habe eine Reihe von Ressourcen ausprobiert, aber dieses Beispiel funktioniert nicht.
- 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
Bitte beachten Sie diese Werte aus einer Textdatei würde schließlich kommen und so werden die Werte in Form von Variablen sein: Ich habe einen Blick auf genommen . Ich habe verschiedene Ansätze ausprobiert, aber es scheint nicht zu funktionieren. Ich möchte nur, wenn diese Anweisung funktioniert. Es funktioniert für übereinstimmenden Text, aber nicht für Werte auf beiden Seiten. Der Wert könnte "java.lang.NullPointerException: Unexpected" oder "Unexpected java.lang.NullPointerException" sein.
Sie haben Ihre Operanden Bestellung falsch: 'in =" testen Sie dies "; [["$ in" = "test" *]] && echo ok' funktioniert gut (und benötigt keinen zusätzlichen '=' test); es ist der kürzeste Wert, der als Muster mit einem '*' – Aaron
Dank verwendet werden muss. Das hat funktioniert. –
Gern geschehen! Ich schlage vor, dass Sie Ihre Frage löschen, da sie jetzt gelöst ist und nur eine falsche Umsetzung der Antworten auf die Fragen war, die Sie verlinkt haben. – Aaron