GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Arrays in Shell-Skripten

Wenn Sie wissen, wie man mit Arrays in Shell-Skripten arbeitet, können Sie mit größeren Datensätzen sehr effizient arbeiten. Aber was sind Arrays und wie können Sie Arrays erstellen? Finden wir es heraus!

Was sind Arrays?

Wenn Sie bereits ein grundlegendes Verständnis einer Programmiersprache haben, wissen Sie, was Arrays sind. Aber für die Uneingeweihten gehen wir die Grundlagen von Arrays durch und lernen, wie man mit ihnen arbeitet.

Variablen speichern einzelne Datenelemente. Arrays hingegen können eine praktisch unbegrenzte Anzahl von Datenelementen speichern. Bei der Arbeit mit großen Datenmengen können sich Variablen als sehr ineffizient erweisen und es ist sehr hilfreich, sich mit Arrays vertraut zu machen.

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

Erstellen von Arrays in Shell-Skripten

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

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

Das erstellte Standardarray ist ein indiziertes Array. Wenn Sie die Indexnamen angeben, wird es zu einem assoziativen Array, und auf die Elemente kann mit den Indexnamen statt mit Zahlen zugegriffen werden.

Arrays deklarieren:

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 Groß- und Kleinbuchstaben a . A in Großbuchstaben wird verwendet, um ein assoziatives Array zu deklarieren, während a in Kleinbuchstaben geschrieben wird wird verwendet, um ein indiziertes Array zu deklarieren.

Die declare Das Schlüsselwort wird verwendet, um Arrays explizit zu deklarieren, aber Sie müssen sie nicht wirklich verwenden. Wenn Sie ein Array erstellen, können Sie die Werte einfach basierend auf dem gewünschten Array-Typ initialisieren, ohne die Arrays explizit zu deklarieren.

Arbeiten mit Arrays in Shell-Skripten

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

1. Einzeln auf Array-Elemente zugreifen

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

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

Lassen Sie uns auf ähnliche Weise auf einige indizierte Array-Elemente zugreifen. Wir können alle Elemente für das Indexarray angeben, indem wir sie durch Leerzeichen trennen, da der Index automatisch für jedes dieser Elemente generiert wird.

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

Wie Sie sehen können, wird das erste Element automatisch basierend auf dem Index 0 gedruckt.

2. Array-Elemente sequentiell lesen

Dies wird eine einfache Aufgabe sein, wenn Sie bereits for-Schleifen kennen. Wenn Sie dies nicht tun, werden wir sie in einem zukünftigen Tutorial behandeln. Wir verwenden die While- oder For-Schleifen in Shell-Skripten, um die Array-Elemente zu bearbeiten. Kopieren Sie das folgende Skript und speichern Sie es als .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 gibt Folgendes aus:

Jetzt ist Ihnen vielleicht das index_array[@] aufgefallen und wenn Sie sich fragen, was das @ Symbol steht für, wir werden das Gleiche jetzt noch einmal durchgehen.

Eingebaute Operationen für Arrays in Shell-Skripten

Nachdem Sie nun gelernt haben, wie Sie einzeln auf Elemente zugreifen und for-Schleifen verwenden, 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 den Index oder den Schlüssel des Arrays bereitstellt. Aber wenn wir alle Elemente gleichzeitig drucken oder mit allen Elementen arbeiten wollen, können wir einen anderen Operator verwenden, nämlich [@] Symbol.

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

echo ${assoc_array[@]}

Das Obige druckt alle Elemente, die im assoc-Array gespeichert sind.

2. Zählen Sie die Anzahl der Elemente in einem Array

Ähnlich dem @ Symbol oben haben wir das # Symbol, das einem Array-Namen vorangestellt werden kann, um uns die Anzahl der im Array gespeicherten Elemente bereitzustellen. Mal sehen, wie es funktioniert.

echo ${#index_array[@]}

Wenn Sie die Anzahl der Zeichen zählen möchten, die für ein bestimmtes Element verwendet werden, können wir einfach das @ ersetzen Symbol mit dem Index.

3. Einzelne Array-Elemente löschen

Wir wissen, wie man Array-Elemente hinzufügt und sie auch druckt. Lassen Sie uns lernen, wie man bestimmte Elemente löscht. Zu diesem Zweck verwenden wir den unset Schlüsselwort.

unset index_array[1]

Ersetzen Sie den Array-Namen und die Index-ID im obigen Codebeispiel, und Sie haben das gewünschte Array-Element entfernt. Ziemlich einfach, nicht wahr?

Schlussfolgerung

Shell-Skripte sind ziemlich umfangreich und können jede Funktion ersetzen, die Sie auf dem Terminal ausführen können, wenn die richtige Person das Skript schreibt. Einige zusätzliche Funktionalitäten von Arrays in Shell-Skripten umfassen auch die Möglichkeit, mit regex zu arbeiten (Reguläre Ausdrücke). Wir können verschiedene reguläre Ausdrücke verwenden, um Array-Elemente innerhalb von Shell-Skripten zu manipulieren.

Für den Moment hoffen wir, dass Sie ein gutes Verständnis für das Erstellen und Arbeiten mit Arrays haben und in der Lage sind, Arrays in Ihrem Skript zu verwenden. Kommentieren Sie unten, um uns Ihre Meinung mitzuteilen und falls Sie Fragen zu diesem Thema haben.


Linux
  1. Assoziative Arrays in Shell-Skripten?

  2. Richtiges Sperren in Shell-Skripten?

  3. Arrays in der Unix-Bourne-Shell?

  4. Bash-Arrays mit Beispielen

  5. Ausführen von Skripts aus einem anderen Verzeichnis

So erstellen Sie Shell-Skripte

Wie verwende ich if-else in Shell-Skripten?

Die for-Schleife in Shell-Skripten verstehen

Die While-Schleife in Shell-Skripten

Befehlszeilenparameter in Shell-Skripten

Führen Sie alle Shell-Skripte im Ordner aus