Bash-scripting verwenden Wie überprüfe ich, ob sich eine Zeichenfolge in einer anderen Zeichenfolge befindet?

465
user3541631

Ich verwende Bash-Scripting zum Ausführen von psql(Datenbank-) Befehlen:

Der Befehl gibt eine Antwort zurück, die den Datenbank- / Tabellennamen enthält oder nicht.

Wie überprüfe ich, ob meine Datenbank / Tabelle in der zurückgegebenen Antwort enthalten ist? Pseudo:

VAR_EXIST=$(command) if $DATABASE_NAME in VAR_EXIST then VAR_EXIST= true 
1
Beantwortet bei StackOverflow in https://stackoverflow.com/q/229551/1540660 Art Gertner vor 5 Jahren 2
@ArtGertner füge es hier als Antwort hinzu - natürlich mit Anerkennung :) bertieb vor 5 Jahren 0
2562 Upvotes ??? fixer1234 vor 5 Jahren 0

1 Antwort auf die Frage

2
Art Gertner

Antwort aus: https://stackoverflow.com/q/229551/1540660

string='a needle in a haystack' if [[ $string = *"a needle"* ]]; then echo "It's there!" fi 

Beachten Sie, dass Leerzeichen in der Nadelkette zwischen Anführungszeichen gesetzt werden müssen und die Platzhalter * außerhalb stehen müssen.

An Ihren Fall angepasst:

VAR_EXIST=$(command) if [[ $VAR_EXIST = *"$DATABASE_NAME"* ]]; then echo "DB exists!" fi