So überprüfen Sie, ob ein Bash-Array einen Wert enthält

Bash ist eine weit verbreitete Unix-Shell, die eine Reihe leistungsstarker Tools für die Systemverwaltung und -automatisierung bereitstellt. Eine der am häufigsten verwendeten Programmierstrukturen bei der Bash-Skripterstellung ist ein Array, mit dem Sie mehrere Werte in einer einzigen Variablen speichern können. In diesem Artikel wird erläutert, wie Sie überprüfen, ob ein Bash-Array einen bestimmten Wert enthält.

So überprüfen Sie, ob das Bash-Array einen Wert enthält

Hier sind drei verschiedene Methoden, mit denen Sie feststellen können, ob ein Array in Bash einen Wert enthält:

Methode 1: Verwenden einer Schleife

Eine Möglichkeit, zu überprüfen, ob ein Bash-Array einen Wert enthält, besteht darin, das Array mithilfe einer for-Schleife zu durchlaufen, die jedes Element mit dem gesuchten Wert vergleicht. Hier ist ein Beispiel:

#!/bin/bash
cars=(„BMW“ „VOLVO“ „KIA“)
car_to_find=“KIA“

für Auto in „${cars[@]}“
Tun
Wenn [ „$car“ == „$car_to_find“ ]

Dann
echo „$car gefunden!“
brechen
fi
Erledigt

Hier habe ich eine Reihe von Automarken und möchte die Marke „KIA“ finden, also iteriere ich mit einer for-Schleife über die Reihe und vergleiche jede Automarke mit der Marke, die ich finden möchte. Wenn wir eine Übereinstimmung finden, geben wir eine Nachricht aus und verlassen die Schleife mit der break-Anweisung.

Methode 2: Verwenden des grep-Befehls

Die Verwendung des grep-Befehls zum Suchen nach dem Wert im Array ist eine weitere Technik, um festzustellen, ob ein Bash-Array einen Wert hat. Hier ist eine Illustration:

#!/bin/bash

cars=(„BMW“ „VOLVO“ „KIA“)
car_to_find=“KIA“

if echo „${cars[@]}“ | grep -qw „$car_to_find“; dann
echo „$car_to_find gefunden!“
anders
echo „$car_to_find nicht gefunden.“
fi

Hier haben wir den echo-Befehl verwendet, um das Array auf der Standardausgabe auszugeben und es an grep weiterzuleiten. Die Option -q weist grep an, still zu sein und nur einen Statuscode zurückzugeben, der angibt, ob das Muster gefunden wurde oder nicht. Die Option -w weist grep an, das Muster als ganzes Wort zu finden. Wenn grep das Muster findet, gibt die if-Anweisung eine Meldung aus, die angibt, dass der Wert gefunden wurde.

Methode 3: Verwenden von ${array[@]/pattern/replacement} Syntax

Eine dritte Möglichkeit, zu überprüfen, ob ein Bash-Array einen Wert enthält, ist die Verwendung des ${array[@]Verwenden Sie die Syntax /pattern/replacement}, um den gesuchten Wert durch eine andere Zeichenfolge zu ersetzen, und vergleichen Sie dann das resultierende Array mit dem ursprünglichen Array. Hier ist ein Beispiel:

#!/bin/bash
cars=(„BMW“ „VOLVO“ „KIA“)
car_to_find=“KIA“
Wenn [[ „${cars[@]/$car_to_find/}“ != „${cars[@]}“ ]]; Dann
echo „$car_to_find gefunden!“
anders
echo „$car_to_find nicht gefunden.“
fi

Hier verwenden wir das ${-Array[@]/pattern/replacement}-Syntax, um den Wert, den wir suchen möchten, aus dem Array zu entfernen. Wenn sich das resultierende Array vom ursprünglichen Array unterscheidet, bedeutet dies, dass der Wert gefunden wurde.

Abschluss

Wir haben drei verschiedene Methoden besprochen, um zu überprüfen, ob ein Bash-Array einen Wert enthält: die Verwendung einer Schleife, die Verwendung des grep-Befehls und die Verwendung von ${array[@]/pattern/replacement}-Syntax. Mithilfe dieser Techniken können Sie Bash-Arrays effizient durchsuchen und die erforderlichen Operationen an den gefundenen Werten durchführen.

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Nach oben scrollen