Arrays in Shell-Skripten

0 Aktien
0
0
0
0

Einführung

Wer weiß, wie man in Shell-Skripten mit Arrays arbeitet, kann auch größere Datensätze sehr effizient verarbeiten. Doch was genau sind Arrays und wie erstellt man sie? Finden wir es heraus.

Was sind Arrays?

Wer bereits Grundkenntnisse in einer Programmiersprache besitzt, kennt Arrays. Für alle anderen erklären wir im Folgenden die Grundlagen von Arrays und zeigen, wie man damit arbeitet.

Variablen speichern einzelne Datenelemente. Arrays hingegen können eine nahezu unbegrenzte Anzahl von Datenelementen speichern. Bei der Arbeit mit großen Datenmengen können Variablen sehr ineffizient sein, weshalb die Verwendung von Arrays sehr nützlich ist.

Lasst uns lernen, wie man Arrays in Shell-Skripten erstellt.

Arrays in Shell-Skripten erstellen

Es gibt zwei Arten von Arrays, mit denen wir in Shell-Skripten arbeiten können.

  • Indizierte Arrays – speichern Elemente mit einem Index ab 0.
  • Assoziative Arrays – speichern Elemente in Schlüssel-Wert-Paaren

Das standardmäßig erstellte Array ist ein indiziertes Array. Wenn Sie Indexnamen angeben, wird es zu einem assoziativen Array, und auf die Elemente kann über Indexnamen anstatt über Zahlen zugegriffen werden.

Deklarieren von Arrays:

root@ubuntu:~# declare -A assoc_array
root@ubuntu:~# assoc_array[key]=value
OR
root@ubuntu:~# declare -a indexed_array
root@ubuntu:~# indexed_array[0]=value

Beachten Sie den Unterschied zwischen dem großen und dem kleinen a. Der große Buchstabe A wird verwendet, um ein assoziatives Array zu deklarieren, während der kleine Buchstabe a verwendet wird, um ein indiziertes Array zu deklarieren.

Das Schlüsselwort `declare` dient zur expliziten Deklaration von Arrays, ist aber nicht zwingend erforderlich. Beim Erstellen eines Arrays können Sie die Werte einfach anhand des gewünschten Array-Typs initialisieren, ohne die Arrays explizit zu deklarieren.

Arbeiten mit Arrays in Shell-Skripten

Nachdem Sie nun wissen, wie man ein Array erstellt, lernen wir, wie man mit Arrays arbeitet. Da es sich um Sammlungen von Datenelementen handelt, können wir Schleifen und Arrays gleichzeitig verwenden, um die benötigten Datenpunkte zu extrahieren.

1. Einzelner Zugriff auf Array-Elemente

Da wir wissen, dass jeder Datenpunkt einzeln indiziert ist, können wir auf alle Elemente des Arrays zugreifen, indem wir den Array-Index angeben, wie unten gezeigt:

assoc_array[element1]="Hello World"
echo ${assoc_array[element1]}

Analog dazu können wir auf Elemente eines indizierten Arrays zugreifen. Wir können alle Elemente des indizierten Arrays angeben, indem wir sie durch Leerzeichen trennen, da der Index für jedes dieser Elemente automatisch generiert wird.

index_array=(1 2 3 4 5 6)
echo ${index_array[0]}

Wie Sie sehen können, wird das erste Element automatisch an Index 0 ausgegeben.

2. Sequenzielles Lesen von Array-Elementen

Wenn Sie bereits mit Schleifen vertraut sind, wird Ihnen das leicht fallen. Falls nicht, behandeln wir sie in einem späteren Tutorial. Wir verwenden while- oder for-Schleifen in Shell-Skripten, um Array-Elemente zu bearbeiten. Kopieren Sie das folgende Skript und speichern Sie es unter dem Namen Speichern Sie die Datei .sh

#!/bin/bash
index_array=(1 2 3 4 5 6 7 8 9 0)
for i in ${index_array[@]}
do
echo $i
done

Das obige Skript erzeugt folgende Ausgabe:

Vielleicht ist Ihnen bereits index_array[@] aufgefallen, und falls Sie sich fragen, wofür das @-Symbol steht, werden wir das jetzt klären.

Integrierte Operationen für Arrays in Shell-Skripten

Nachdem Sie nun gelernt haben, wie man auf einzelne Elemente zugreift und for-Schleifen verwendet, lernen wir die verschiedenen Operationen kennen, die standardmäßig für Arrays verfügbar sind.

1. Zugriff auf alle Elemente eines Arrays

Wir haben gelernt, wie man auf Elemente zugreift, indem man einen Index oder einen Array-Schlüssel angibt. Wenn wir aber alle Elemente gleichzeitig ausgeben oder mit allen Elementen arbeiten möchten, können wir einen anderen Operator verwenden, nämlich das [@]-Zeichen.

Wie Sie im obigen Beispiel bemerkt haben, habe ich dieses Symbol verwendet, als ich mit einer for-Schleife alle Elemente des Arrays durchlaufen wollte.

echo ${assoc_array[@]}

Der obige Code gibt alle im assoc-Array gespeicherten Elemente aus.

2. Zähle die Anzahl der Elemente in einem Array.

Ähnlich wie beim @-Symbol oben gibt es das Symbol #, das einem Array-Namen vorangestellt werden kann, um die Anzahl der im Array gespeicherten Elemente anzugeben. Schauen wir uns an, wie das funktioniert.

echo ${#index_array[@]}

Wenn Sie die Anzahl der für ein bestimmtes Element verwendeten Zeichen zählen möchten, können wir einfach das @-Zeichen durch den Index ersetzen.

3. Einzelne Array-Elemente löschen

Wir wissen, wie man Elemente zu einem Array hinzufügt und sie ausgibt. Lernen wir nun, wie man bestimmte Elemente entfernt. Dazu verwenden wir das Schlüsselwort `unset`.

unset index_array[1]

Ersetzen Sie im obigen Codebeispiel den Arraynamen und die Index-ID, und Sie haben das gewünschte Array-Element gelöscht. Ganz einfach, oder?

Ergebnis

Shell-Skripte sind sehr vielseitig und können, wenn sie von einem erfahrenen Skriptschreiber verfasst werden, jede Funktion ersetzen, die man im Terminal ausführen kann. Zu den zusätzlichen Möglichkeiten von Arrays in Shell-Skripten gehört auch die Verwendung von regulären Ausdrücken (Regex). Mithilfe verschiedener regulärer Ausdrücke lassen sich Array-Elemente in Shell-Skripten bearbeiten.

Wir hoffen, dass Sie nun ein gutes Verständnis für das Erstellen und Arbeiten mit Arrays haben und diese in Ihren Skripten verwenden können. Hinterlassen Sie unten einen Kommentar, um Ihre Gedanken mitzuteilen und uns Ihre Fragen zu diesem Thema zu stellen.

Schreibe einen Kommentar

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

Das könnte Ihnen auch gefallen