Bash ist eine weit verbreitete Unix -Shell, die eine Reihe leistungsstarker Tools für die Systemverwaltung und Automatisierung bietet. Eines der am häufigsten verwendeten Programmierstrukturen im Bash -Skripting ist ein Array, mit dem Sie mehrere Werte in einer einzelnen Variablen speichern können, in diesem Artikel, 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, über das Array mit einer für Schleife zu iterieren, die jedes Element mit dem Wert vergleicht, den Sie finden möchten. 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 "fand $ car!"
brechen
fi
Erledigt
Hier habe ich eine Reihe von Automarken und möchte die Marke „Kia“ finden, also itere ich über das Array mit einer für die Schleife und vergleiche jede Automarke mit der Marke, die ich finden möchte. Wenn wir eine Übereinstimmung finden, drucken wir eine Nachricht und beenden die Schleife mit der Break -Anweisung an.
Methode 2: Verwenden des GREP -Befehls
Die Verwendung des GREP -Befehls, um nach dem Wert im Array zu suchen, ist eine andere Technik, um festzustellen, ob ein Bash -Array einen Wert hat, hier ist eine Abbildung:
#!/Bin/Bash
CARS = ("BMW" "Volvo" "Kia")
CAR_TO_FIND = "KIA"
Wenn echo "$ cars [@]" | grep -qw "$ car_to_find"; Dann
echo "fand $ car_to_find!"
anders
echo "$ car_to_find nicht gefunden."
fi
Hier haben wir den Echo -Befehl verwendet, um das Array so zu drucken, dass sie die Ausgabe standardmäßig ausdrucken und nach Grep verlegt haben. Die Option -Q zeigt Grep, dass sie leise sein soll und nur einen Statuscode zurückgeben, der angibt, ob das Muster gefunden wurde oder nicht. Die Option -W fordert Grep an, das Muster als ganzes Wort zu entsprechen. Wenn Grep das Muster findet, druckt die Anweisung eine Nachricht, die angibt, dass der Wert gefunden wurde.
Methode 3: Verwenden Sie $ Array [@]/Muster/Ersatz Syntax
Eine dritte Möglichkeit, zu überprüfen, ob ein Bash -Array einen Wert enthält Array. Hier ist ein Beispiel:
#!/Bin/Bash
CARS = ("BMW" "Volvo" "Kia")
CAR_TO_FIND = "KIA"
if [["$ cars [@]/$ car_to_find/" != "$ cars [@]"]; Dann
echo "fand $ car_to_find!"
anders
echo "$ car_to_find nicht gefunden."
fi
Hier verwenden wir die Syntax $ Array [@]/Muster/Ersatz, um den Wert zu entfernen, den wir aus dem Array finden möchten.
Abschluss
Wir haben drei verschiedene Methoden besprochen, um zu überprüfen. Durch die Verwendung dieser Techniken können Sie effizient durch Bash -Arrays suchen und die erforderlichen Vorgänge für die von Ihnen gefundenen Werte ausführen.