Shell-Arrays

ShellBeginner
Jetzt üben

Einführung

In diesem Lab lernen Sie den Umgang mit Arrays in der Shell-Programmierung kennen. Arrays sind Datenstrukturen, die es Ihnen ermöglichen, mehrere Werte unter einem einzigen Namen zu speichern, was die Organisation und Manipulation von Daten erheblich erleichtert. Sie werden lernen, wie man Arrays initialisiert, Elemente hinzufügt, über den Index auf Elemente zugreift und die Anzahl der Elemente in einem Array ermittelt. Dieses Wissen ist eine grundlegende Voraussetzung für fortgeschrittenes Shell-Scripting und komplexe Datenverarbeitungsaufgaben.

Eine neue Shell-Skriptdatei erstellen

Beginnen wir damit, eine neue Shell-Skriptdatei zu erstellen, in der wir unsere Array-Operationen schreiben werden.

  1. Öffnen Sie Ihr Terminal in der WebIDE.

  2. Navigieren Sie in das Projektverzeichnis:

    cd ~/project
    
  3. Erstellen Sie mit dem touch-Befehl eine neue Datei namens arrays.sh:

    touch arrays.sh
    
  4. Öffnen Sie die Datei arrays.sh in der WebIDE.

Leere Arrays initialisieren

Nachdem wir unsere Skriptdatei vorbereitet haben, beginnen wir mit der Initialisierung von drei leeren Arrays.

Fügen Sie den folgenden Code in Ihre Datei arrays.sh ein:

#!/bin/bash

## Initialize empty arrays
NUMBERS=()
STRINGS=()
NAMES=()

Lassen Sie uns kurz erklären, was dieser Code bewirkt:

  • Die erste Zeile #!/bin/bash wird Shebang genannt. Sie teilt dem System mit, dass dieses Skript von der Bash-Shell ausgeführt werden soll.
  • Wir erstellen drei leere Arrays: NUMBERS, STRINGS und NAMES.
  • Die Syntax () initialisiert ein leeres Array.

Elemente zu den Arrays hinzufügen

Da wir nun unsere leeren Arrays haben, fügen wir ihnen einige Elemente hinzu.

Fügen Sie den folgenden Code in Ihre Datei arrays.sh unterhalb der Array-Initialisierungen ein:

## Add elements to NUMBERS array
NUMBERS+=(1)
NUMBERS+=(2)
NUMBERS+=(3)

## Add elements to STRINGS array
STRINGS+=("hello")
STRINGS+=("world")

## Add elements to NAMES array
NAMES+=("John")
NAMES+=("Eric")
NAMES+=("Jessica")

Das bewirkt dieser Code:

  • Wir verwenden den Operator +=, um Elemente an unsere Arrays anzuhängen.
  • Dem Array NUMBERS fügen wir die Ganzzahlen 1, 2 und 3 hinzu.
  • Dem Array STRINGS fügen wir die Wörter "hello" und "world" hinzu.
  • Dem Array NAMES fügen wir drei Namen hinzu: "John", "Eric" und "Jessica".
  • Beachten Sie, dass wir Zeichenketten (Strings) in Anführungszeichen setzen, Zahlen hingegen nicht.

Die Anzahl der Elemente in einem Array ermitteln

Eine häufige Operation bei der Arbeit mit Arrays ist die Feststellung, wie viele Elemente sie enthalten. Wir führen dies für unser NAMES-Array durch.

Fügen Sie den folgenden Code in Ihre Datei arrays.sh ein:

## Get the number of elements in the NAMES array
NumberOfNames=${#NAMES[@]}

Diese Zeile bewirkt Folgendes:

  • ${#NAMES[@]} liefert uns die Anzahl der Elemente im Array NAMES.
  • Wir speichern diesen Wert in einer Variablen namens NumberOfNames.
  • Das Symbol @ innerhalb der Klammern bezieht sich auf alle Elemente des Arrays.
  • Das Symbol # vor NAMES weist die Shell an, die Elemente zu zählen.

Auf ein bestimmtes Element in einem Array zugreifen

Greifen wir nun auf ein spezifisches Element in unserem NAMES-Array zu. Wir möchten den zweiten Namen auslesen.

Fügen Sie diesen Code in Ihre Datei arrays.sh ein:

## Access the second name in the NAMES array
second_name=${NAMES[1]}

Das bewirkt dieser Code:

  • Wir greifen mit ${NAMES[1]} auf das zweite Element des Arrays NAMES zu.
  • Denken Sie daran, dass Array-Indizes in der Bash bei 0 beginnen, daher liefert uns [1] das zweite Element.
  • Wir speichern diesen Wert in einer Variablen namens second_name.

Arrays und Variablen ausgeben

Zum Abschluss fügen wir Code hinzu, um unsere Arrays und Variablen auszugeben, damit wir die Ergebnisse unserer Operationen sehen können.

Fügen Sie den folgenden Code am Ende Ihrer Datei arrays.sh hinzu:

## Print the arrays and variables
echo "NUMBERS array: ${NUMBERS[@]}"
echo "STRINGS array: ${STRINGS[@]}"
echo "The number of names listed in the NAMES array: $NumberOfNames"
echo "The second name on the NAMES list is: $second_name"

Dieser Code bewirkt Folgendes:

  • Wir verwenden echo, um Texte in der Konsole auszugeben.
  • ${NUMBERS[@]} und ${STRINGS[@]} geben alle Elemente dieser Arrays aus.
  • Wir geben die zuvor erstellten Variablen NumberOfNames und second_name aus.

Das Skript ausführen

Nachdem wir unser Skript geschrieben haben, ist es an der Zeit, es auszuführen und die Ergebnisse zu prüfen.

  1. Stellen Sie in Ihrem Terminal sicher, dass Sie sich im richtigen Verzeichnis befinden:

    cd ~/project
    
  2. Machen Sie das Skript ausführbar:

    chmod +x arrays.sh
    
  3. Führen Sie das Skript aus:

    ./arrays.sh
    

Sie sollten eine Ausgabe sehen, die der folgenden ähnelt:

NUMBERS array: 1 2 3
STRINGS array: hello world
The number of names listed in the NAMES array: 3
The second name on the NAMES list is: Eric

Diese Ausgabe bestätigt, dass unsere Array-Operationen erfolgreich waren:

  • Das Array NUMBERS enthält 1, 2 und 3.
  • Das Array STRINGS enthält "hello" und "world".
  • Wir haben korrekt 3 Namen im Array NAMES gezählt.
  • Wir haben erfolgreich "Eric" als zweiten Namen abgerufen.

Zusammenfassung

In diesem Lab haben Sie die Grundlagen für die Arbeit mit Arrays im Shell-Scripting erlernt. Sie haben geübt, Arrays zu initialisieren, Elemente hinzuzufügen, auf spezifische Elemente zuzugreifen und die Anzahl der Elemente in einem Array zu bestimmen. Diese Fähigkeiten sind entscheidend für fortgeschrittene Aufgaben in der Shell-Programmierung, insbesondere wenn Sie mit Datenlisten arbeiten oder Operationen auf mehreren Elementen gleichzeitig ausführen müssen. Arrays bieten eine leistungsstarke Möglichkeit, Daten in Ihren Shell-Skripten zu organisieren und zu manipulieren, wodurch Ihr Code effizienter und wartungsfreundlicher wird.