Verwenden Array in Linux Bash

Yahya Irmak 24 März 2022
Verwenden Array in Linux Bash

Bash hat eine Array-Struktur (einige Sprachen nennen es eine Liste). In diesem Artikel erklären wir diese Struktur. Später werden wir die folgenden Themen in Bash-Skripting untersuchen.

  • Array-Deklaration
  • Greifen Sie auf Werte im Array zu
  • Fügen Sie dem Array einen neuen Wert hinzu
  • Einen Wert aus dem Array löschen

Ein Array ist eine Datenstruktur, die ähnliche Daten zusammenhält. Alle Daten im Array haben einen Index, und der Index des ersten Elements ist 0. Auf diese Daten können wir sequentiell mit einer Schleife oder einzeln über den Datenindex zugreifen. Wir können auch das Array ändern, neue Werte hinzufügen und vorhandene Werte löschen.

Verwendung von Arrays in Bash

Nachdem wir nun wissen, was ein Array ist, können wir seine Verwendung in Bash untersuchen.

Deklarieren Sie ein Array

Ein Array wird deklariert, indem Werte in Klammern eingeschlossen werden. Zwischen den Werten stehen nur Leerzeichen, keine Zeichen wie Kommas. Eine Beispiel-Array-Deklaration ist unten.

arr=("black" "white" "red" "blue" "green")

Wir können die folgenden Methoden verwenden, um ein ganzzahliges Array zu deklarieren.

intArr=(1 2 3 4)
intArr=($(seq 1 4))
intArr=({1..4}) 

Diese Beispiele deklarieren ein Array mit den Zahlen 1 bis 4.

Greifen Sie auf ein Array zu

Es gibt viele verschiedene Möglichkeiten, auf Daten in einem Array zuzugreifen. Beispielsweise können wir das gesamte Array drucken, über den Index auf ein einzelnes Element zugreifen oder mit einer Schleife nacheinander auf jedes Element zugreifen. Lassen Sie uns jede Methode einzeln erklären.

Greifen Sie auf das gesamte Array zu

Wir können die Befehle [*] oder [@] verwenden, um auf alle Werte zuzugreifen, die ein Array enthält. Lassen Sie uns zum Beispiel diese Befehle verwenden, um alle Werte im Array arr zu drucken, das wir oben definiert haben.

arr=("black" "white" "red" "blue" "green")
echo "With *: ${arr[*]}"
echo "With @: ${arr[@]}"

Greifen Sie auf das gesamte Array zu

Greifen Sie auf ein Element mit Index zu

Der Index des ersten Elements im Array ist 0, und die Indizes der folgenden Elemente erhöhen sich sequentiell. Wir können auf das Element über die Indexnummer des Elements im Array zugreifen. Zum Beispiel verwenden wir den folgenden Bash-Code, um den Wert red im Array arr zu erhalten.

arr=("black" "white" "red" "blue" "green")
echo "${arr[2]}"

Greifen Sie mit Index auf das Element zu

Zugriff auf Array-Elemente mit Schleife

Wir können die for-Schleife verwenden, um nacheinander auf alle Elemente eines Arrays zuzugreifen. Unten ist das Bash-Skript, das jede Farbe im Array arr auf dem Bildschirm ausgibt.

arr=("black" "white" "red" "blue" "green")
for color in ${arr[@]}; do
  echo $color
done

Zugangselemente mit Schleife

Wenn wir auf diese Werte zusammen mit der Indexnummer zugreifen möchten, können wir den folgenden Code verwenden.

arr=("black" "white" "red" "blue" "green")
for i in ${!arr[@]}; do
  echo "$i: ${arr[$i]}"
done

Der Befehl ${!arr[@]} gibt die Indizes aller Werte im Array zurück. Dann wird unter Verwendung dieser Indizes auf das Element zugegriffen.

Zugriff auf nummerierte Elemente mit Schleife

Neues Element zu einem Array hinzufügen

Um dem Array ein neues Element hinzuzufügen, können wir dem neuen Wert eine Indexnummer zuweisen oder den Operator += verwenden.

arr=("black" "white" "red" "blue" "green")
echo "Before adding purple: ${arr[@]}"
arr[5]="purple" # or use arr+=("purple"), exactly same
echo "After adding purple: ${arr[@]}"

Element zum Array hinzufügen

Löschen Sie ein Element aus einem Array

Wir können den Befehl unset verwenden, um alle Daten im Array zu löschen oder sogar das Array selbst vollständig zu löschen.

arr=("black" "white" "red" "blue" "green")
echo "Before removing white: ${arr[@]}"
unset arr[1]
echo "After removing white: ${arr[@]}"

Löschen Sie ein Element aus einem Array

Yahya Irmak avatar Yahya Irmak avatar

Yahya Irmak has experience in full stack technologies such as Java, Spring Boot, JavaScript, CSS, HTML.

LinkedIn

Verwandter Artikel - Bash Array