Shell-Arrays

ShellShellBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab lernen Sie, wie Sie mit Arrays in der Shell-Programmierung arbeiten. Arrays sind Datenstrukturen, die es Ihnen ermöglichen, mehrere Werte unter einem einzigen Namen zu speichern, was die Organisation und Manipulation von Daten erleichtert. Sie werden lernen, wie Sie Arrays initialisieren, Elemente hinzufügen, Elemente anhand ihres Index zugreifen und die Anzahl der Elemente in einem Array bestimmen. Dieses Wissen ist grundlegend für fortgeschrittenere Shell-Skripting- und Datenmanipulationstasks.

Erstellen einer neuen Shell-Skriptdatei

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 eine neue Datei mit dem Namen arrays.sh mithilfe des touch-Befehls:

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

Initialisieren von leeren Arrays

Jetzt, da wir unsere Skriptdatei haben, beginnen wir damit, drei leere Arrays zu initialisieren.

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

#!/bin/bash

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

Schauen wir uns an, was dieser Code tut:

  • 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.

Hinzufügen von Elementen zu den Arrays

Jetzt, da wir unsere leeren Arrays haben, fügen wir ihnen einige Elemente hinzu.

Fügen Sie den folgenden Code in Ihre arrays.sh-Datei 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")

Hier ist, was dieser Code tut:

  • Wir verwenden den +=-Operator, um Elemente an unsere Arrays anzuhängen.
  • Für NUMBERS fügen wir die ganzen Zahlen 1, 2 und 3 hinzu.
  • Für STRINGS fügen wir die Wörter "hello" und "world" hinzu.
  • Für NAMES fügen wir drei Namen hinzu: "John", "Eric" und "Jessica".
  • Beachten Sie, dass wir Zeichenkennenelemente in Anführungszeichen setzen, Zahlen jedoch keine Anführungszeichen benötigen.

Bestimmen der Anzahl der Elemente in einem Array

Eine häufige Operation mit Arrays besteht darin, herauszufinden, wie viele Elemente sie enthalten. Lassen Sie uns dies für unser NAMES-Array tun.

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

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

Diese Zeile macht Folgendes:

  • ${#NAMES[@]} gibt uns die Anzahl der Elemente im NAMES-Array.
  • 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 teilt der Shell mit, die Elemente zu zählen.

Zugriff auf ein bestimmtes Element in einem Array

Jetzt greifen wir auf ein bestimmtes Element in unserem NAMES-Array zu. Wir werden den zweiten Namen abrufen.

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

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

Hier ist, was dieser Code tut:

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

Ausgabe der Arrays und Variablen

Schließlich fügen wir einige Codezeilen hinzu, um unsere Arrays und Variablen auszugeben und die Ergebnisse unserer Operationen zu sehen.

Fügen Sie den folgenden Code ans Ende Ihrer arrays.sh-Datei 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 macht Folgendes:

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

Ausführen des Skripts

Jetzt, da wir unser Skript geschrieben haben, ist es an der Zeit, es auszuführen und die Ergebnisse zu sehen.

  1. Stellen Sie im 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 ähnlich der folgenden sehen:

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 zeigt, dass unsere Array-Operationen erfolgreich waren:

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

Zusammenfassung

In diesem Lab haben Sie die Grundlagen der Arbeit mit Arrays in Shell-Skripten gelernt. Sie haben das Initialisieren von Arrays, das Hinzufügen von Elementen, den Zugriff auf bestimmte Elemente und das Bestimmen der Anzahl der Elemente in einem Array geübt. Diese Fähigkeiten sind für fortgeschrittenere Shell-Skripting-Aufgaben von entscheidender Bedeutung, insbesondere wenn Sie mit Datenlisten arbeiten oder Operationen auf mehreren Elementen 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 einfacher zu verwalten wird.