GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So vergleichen Sie Zeichenfolgen in Bash Shell-Skripten

Der Umgang mit Strings ist Teil jeder Programmiersprache. Bash-Shell-Scripting ist nicht anders. Sogar die Syntax ist ziemlich gleich.

In diesem kurzen Tutorial zeige ich Ihnen, wie Sie Zeichenfolgen in Bash-Shell-Skripten vergleichen.

Bash-String-Vergleich

So vergleichen Sie Strings in Bash.

if [ "$string1" == "$string2" ]

Sie können statt einer Variablen auch direkt einen String verwenden.

if [ "$string1" == "This is my string" ]

Lassen Sie es mich Ihnen anhand geeigneter Beispiele zeigen.

Prüfe, ob zwei Strings gleich sind

Wenn Sie überprüfen möchten, ob zwei Strings gleich sind, hier ein Beispiel:

#!/bin/bash
string1="MyString"
string2="MyString"
if [ "$string1" == "$string2" ]
then
    echo "Equal Strings"
else
    echo "Strings not equal"
fi

Tipp:Achten Sie auf die Leerzeichen

Zwischen [ muss ein Leerzeichen stehen und den Variablennamen und den Gleichheitsoperator ==. Wenn Sie hier eines der Leerzeichen auslassen, sehen Sie einen Fehler wie „unärer Operator erwartet“ oder fehlendes „]“.

Überprüfen Sie, ob Strings in Bash nicht gleich sind

Anstatt die Qualität zu prüfen, machen wir das Gegenteil und prüfen die Ungleichheit. Bash bietet auch den Negationsoperator, sodass Sie die Bedingung „if not equal“ in Shell-Skripten problemlos verwenden können.

if [ "$string1" != "Not MyString" ]

Das vollständige Beispiel sieht so aus:

#!/bin/bash
string1="MyString"

if [ "$string1" != "Not MyString" ]
then
    echo "Not Equal Strings"
else
    echo "Strings equal"
fi

Überprüfen Sie, ob die Zeichenfolge in Bash null oder leer ist

Im Gegensatz zu einigen anderen Sprachen wie C++ können Sie in Bash mit einem einzigen Befehl prüfen, ob der String null oder leer ist:

if [ -z "$VAR" ]

Das -z prüft tatsächlich, ob die Länge der Variablen Null ist oder nicht. Wenn die Variable nicht gesetzt oder leer ist (gleich „“), ist die Länge null und die Bedingung gibt daher wahr zurück.

Ein vollständiges Beispiel finden Sie hier:

#!/bin/bash
string1=
string2=""
if [ -z "$string1" ]
then
    echo "Null Strings"
fi
if [ -z "$string2"]
then
    echo "Empty String"
fi

Hinweis zur Verwendung von einfachen Klammern „[]“ und doppelten Klammern „[[]]“ in Bash-Skripten

Sie können die if-Anweisung auch wie folgt mit doppelten Klammern verwenden:

if [[ "$string1" == "My String" ]]

Die einzelne Klammer ist die alte Posix-Konvention und hat einige Mängel. Wenn Sie die doppelten Anführungszeichen um die Variablen nicht verwenden und die Variable nicht definiert ist, verschwindet sie aus dem Code und dies führt zu einem Syntaxfehler.

if [ $string1 == "My String" ]

Wenn die Variable $string1 leer oder im obigen Code nicht definiert ist, wird diese Zeile äquivalent zu

if [  == "$string2" ]

Fazit

Ich hoffe, dieses kurze Tutorial hat Ihnen beim Vergleichen von Zeichenfolgen in Bash-Shell-Skripten geholfen. Ich empfehle, auch ein weiteres kurzes Tutorial zum Bash-Schlafbefehl zu lesen.

Wenn Sie Fragen oder Anregungen haben, können Sie unten einen Kommentar hinterlassen.


Linux
  1. So vergleichen Sie Zahlen und Zeichenfolgen im Linux-Shell-Skript

  2. Woher weiß Bash, wie es aufgerufen wird?

  3. Wie parse ich Json mit Shell-Scripting in Linux?

  4. Wie ändere ich die Cron-Shell (sh in Bash)?

  5. So echoen Sie eine neue Zeile in Bash-Shell-Skripten

So verwenden Sie den Datumsbefehl in Bash-Skripten unter Linux

Shell-Scripting für Anfänger – So schreiben Sie Bash-Scripts unter Linux

So verwenden Sie den Declare-Befehl in der Linux Bash Shell

So installieren Sie Linux Bash Shell unter Windows 10

So überprüfen Sie, ob eine Datei oder ein Verzeichnis in der Bash-Shell vorhanden ist

Bash-Skripting:So geben Sie Text in der Linux-Shell aus und formatieren ihn