Bash-assoziatives Array

Sheeraz Gul 20 Juni 2023
  1. Bash-assoziatives Array
  2. Greifen Sie auf das assoziative Array zu
  3. Neue Mitglieder zum assoziativen Array hinzufügen
  4. Löschen Sie ein Mitglied aus dem assoziativen Array
Bash-assoziatives Array

Dieses Tutorial zeigt, wie Sie ein assoziatives Array in Bash erstellen.

Bash-assoziatives Array

Arrays können in Bash sehr nützlich sein, um Daten zu speichern, und das Array mit einem String-Index kann auch in Bash erstellt werden, was als assoziatives Array bezeichnet wird. Das assoziative Array wurde in Bash 4 hinzugefügt und kann in der Version davor nicht deklariert werden.

Überprüfen Sie zuerst die Version von Bash, denn wenn die Version kleiner als 4 ist, kann das assoziative Array nicht deklariert werden. Wir verwenden den Befehl declare, um ein assoziatives Array zu deklarieren.

Führen Sie die folgenden Schritte aus, um ein assoziatives Array zu deklarieren:

  • Überprüfen Sie zunächst die Version von Bash und führen Sie den folgenden Befehl aus:
    bash --version
    

    Der obige Befehl überprüft die Version von Bash. Die Ausgabe ist:

    GNU bash, version 5.0.17(1)-release (x86_64-pc-linux-gnu)
    Copyright (C) 2019 Free Software Foundation, Inc.
    License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
    
  • Verwenden Sie nun den Befehl declare, um ein assoziatives Array zu deklarieren:
    declare -A DemoArray
    DemoArray[One]=Delftstack1
    DemoArray[Two]=Delftstack2
    DemoArray[Three]=Delftstack3
    DemoArray[Four]=Delftstack4
    DemoArray[Five]=Delftstack5
    DemoArray[Six]=Delftstack6
    

    Die obigen Befehle deklarieren zuerst ein assoziatives Array und weisen dann Indizes und Werte zu.

  • Außerdem gibt es einen weiteren Befehl, mit dem wir ein assoziatives Array in einer Zeile deklarieren können:
    declare -A DemoArray1=( [One]=Delftstack1 [Two]=Delftstack2 [Three]=Delftstack3 )
    

    Der obige Befehl erstellt ein assoziatives Array in einer Zeile.

Greifen Sie auf das assoziative Array zu

Auf die Elemente des assoziativen Arrays können wir entweder einzeln oder über ein Array zugreifen. Wir können sie direkt echoen oder das Array in eine Schleife versetzen.

Sehen Sie sich die Befehle an, um auf die Werte einzeln zuzugreifen:

echo ${DemoArray[One]}
echo ${DemoArray[Two]}
echo ${DemoArray[Three]}
echo ${DemoArray[Four]}
echo ${DemoArray[Five]}
echo ${DemoArray[Six]}

Der obige Befehl druckt die Werte des assoziativen Arrays auf gegebenen Indizes. Siehe die Ausgabe:

Delftstack1
Delftstack2
Delftstack3
Delftstack4
Delftstack5
Delftstack6

Wir können auch mit einer Schleife auf alle Werte eines assoziativen Arrays zugreifen. Siehe den Befehl:

for ArrayKey in "${!DemoArray[@]}"; do echo $ArrayKey; done
echo "${!DemoArray[@]}"

Hier ! kann verwendet werden, um die Schlüssel eines assoziativen Arrays zu lesen. Der erste Befehl druckt die Schlüssel des assoziativen Arrays nacheinander, und der zweite Befehl druckt alle Schlüssel auf einmal.

Siehe die Ausgabe:

Four
Six
One
Five
Two

Three Four Six One Five Two

Um den Wert zu drucken, löschen wir das ! Operator aus den obigen Befehlen:

for ArrayValue in "${DemoArray[@]}"; do echo $ArrayValue; done
echo "${DemoArray[@]}"

Nun drucken diese Befehle alle Werte des angegebenen assoziativen Arrays. Siehe die Ausgabe:

Delftstack4
Delftstack6
Delftstack1
Delftstack5
Delftstack2

Delftstack3 Delftstack4 Delftstack6 Delftstack1 Delftstack5 Delftstack2

Schließlich können wir die Schlüssel mit Wert mit der for-Schleife drucken. Siehe den Befehl:

for ArrayKey in "${!DemoArray[@]}"; do echo "$ArrayKey => ${DemoArray[$ArrayKey]}"; done

Der obige Befehl gibt alle Schlüssel-Wert-Paare des angegebenen Arrays aus. Siehe die Ausgabe:

Three => Delftstack3
Four => Delftstack4
Six => Delftstack6
One => Delftstack1
Five => Delftstack5
Two => Delftstack2

Neue Mitglieder zum assoziativen Array hinzufügen

Das Hinzufügen eines neuen Elements zu einem assoziativen Array ist eine sehr einfache Operation. Wir verwenden den Verkettungsoperator += zwischen dem Array und dem neuen Schlüssel-Wert-Paar.

Wir erstellen ein Schlüssel-Wert-Paar und weisen es dann unserem assoziativen Array zu. Siehe den Befehl:

echo "${DemoArray[@]}"
DemoArray+=([Seven]=Delftstack7)
echo "${DemoArray[@]}"

Der obige Befehl druckt das ursprüngliche Array, fügt ein neues Element hinzu und druckt dann das geänderte Array. Siehe Ausgabe

Delftstack3 Delftstack4 Delftstack6 Delftstack1 Delftstack5 Delftstack2

Delftstack3 Delftstack4 Delftstack7 Delftstack6 Delftstack1 Delftstack5 Delftstack2

Löschen Sie ein Mitglied aus dem assoziativen Array

Das Löschen eines Mitglieds eines assoziativen Arrays ist ebenfalls eine einfache Operation. Wir verwenden den Befehl unset für das Array-Member, das aus dem Array gelöscht wird.

Siehe die Befehle.

echo "${DemoArray[@]}"
unset DemoArray[Seven]
echo "${DemoArray[@]}"

Der obige Befehl zeigt zuerst das ursprüngliche Array an, löscht dann das Mitglied [Seven] des Arrays und zeigt dann erneut das geänderte Array an. Siehe die Ausgabe:

Delftstack3 Delftstack4 Delftstack7 Delftstack6 Delftstack1 Delftstack5 Delftstack2

Delftstack3 Delftstack4 Delftstack6 Delftstack1 Delftstack5 Delftstack2
Sheeraz Gul avatar Sheeraz Gul avatar

Sheeraz is a Doctorate fellow in Computer Science at Northwestern Polytechnical University, Xian, China. He has 7 years of Software Development experience in AI, Web, Database, and Desktop technologies. He writes tutorials in Java, PHP, Python, GoLang, R, etc., to help beginners learn the field of Computer Science.

LinkedIn Facebook

Verwandter Artikel - Bash Array