Zeichenfolgenvergleichsoperator in Bash
In diesem Artikel erklären wir den String-Vergleich in Bash mit der if-Anweisung.
Ein unter Linux ausgeführtes Shell-Programm, das die Befehlszeilenschnittstelle für Benutzer zum Ausführen verschiedener Befehle bereitstellt, wird als Bash-Shell bezeichnet. Es wird auch als Standard-Shell in vielen Linux-Distributionen verwendet, bekannt als GNU Bourne-Again Shell (Bash).
Bash-Skript
Eine Reihe von Bash-Befehlen, die in eine Datei geschrieben werden, wird als Bash-Skript bezeichnet. Die Bash-Shell führt diese Befehle nach dem Lesen aus der Datei aus.
Die Dateiendung eines Bash-Skripts ist .sh. Der folgende Inhalt einer Datei mit dem Namen First.sh wird unten angezeigt.
#!/bin/Bash
echo "Hello World"
Die obige Datei First.sh ist ein Bash-Skript, das nur einen echo-Befehl enthält, der Hello world auf dem Terminal anzeigt.
Die erste Zeile der Datei #!/bin/Bash informiert über das Bash-Programm im System, das als Interpreter fungiert, um den in der Skriptdatei geschriebenen Befehl auszuführen.
Die Bash-Shell bietet verschiedene Methoden, um das Skript auf dem Terminal auszuführen. Einige Methoden werden unten diskutiert.
-
Ein
bash-Befehl gefolgt von der Bash-Skriptdatei wird verwendet, um das Skript auszuführen. Der folgende Befehl führt das SkriptFirst.shaus.bash First.shDie Ausgabe dieses Befehls ist:
Hello World
-
Führen Sie das Bash-Skript aus, indem Sie den Pfad angeben. Nachdem wir der Skriptdatei mit
chmod +x First.shdas Ausführungsrecht zugewiesen haben, können wir die Skriptdatei ausführen, indem wir den Pfad des Skripts angeben.<path to the script file>/First.shWir können den absoluten Pfad mit der obigen Methode oder den relativen Pfad zum Skript mit
./First.shverwenden, um das Skript auszuführen.
String-Variable in Bash
Wir können jeden String in einer Variablen deklarieren und initialisieren, indem wir den Zuweisungsoperator (=) im Bash-Skript verwenden.
Zum Beispiel:
#!/bin/Bash
S="Hello World"
echo $S
Im obigen Beispiel deklarieren wir eine String-Variable S und initialisieren sie mit Hello World als Wert. Der Befehl echo zeigt den Wert der String-Variablen auf dem Terminal mit dem Befehl echo und dem Operator $ an.
Zeichenfolgenvergleichsoperator in Bash-Skript
Wir können zwei Strings mit dem Operator = (ist gleich) im Bash-Skript vergleichen. Wir verwenden auch den Operator ==, um die Zeichenfolge zu vergleichen.
Das == ist ein Synonym des =-Operators für String-Vergleiche.
Stellen Sie sich beispielsweise ein Bash-Skript First.sh vor, das den folgenden Inhalt enthält.
#!/bin/Bash
S1="Hello World"
S2="Hello World"
if [ "$S1" = "$S2" ]
then
echo "Equal"
else
echo "Not Equal"
fi
Das folgende Skript enthält zwei Strings, S1 und S2 haben denselben Wert. Die if-Bedingung vergleicht die Zeichenfolge mit dem =-Operator; Wir können jedoch auch die Anweisung if [ "$S1" == "$S2" ] verwenden, um diese Zeichenfolgen zu vergleichen.
Das Folgende ist die Ausgabe des First.sh-Skripts.
Equal
Hinweis: Wenn wir Leerzeichen vor und nach dem
=-Operator in derif-Anweisung entfernen, zum Beispielif [ "$S1"="$S2" ], werden die Strings nicht genau verglichen.
Der Operator != (ist nicht gleich) wird für den Ungleichheitsvergleich zweier Strings verwendet. Wir können diesen Operator in einer if-Anweisung mit if [ "$S1" != "$S2" ] verwenden.
Diese Anweisung gibt true zurück, wenn die Strings S1 und S2 ungleich sind.