Unix / Linux - Verwendung von Shell-Arrays
Hallo, ambitionierte Programmierer! Willkommen zu unserer Lektion über die Verwendung von Arrays in Unix- und Linux-Shell-Skripten. Ich freue mich sehr, Euch auf dieser aufregenden Reise in die Welt der Datenstrukturen zu führen. Als jemand, der seit Jahren Informatik unterrichtet, kann ich Euch versichern, dass das Beherrschen von Arrays eine helt neue Welt der Möglichkeiten in Euren Programmierabenteuern eröffnen wird. Also, tauchen wir ein!
Was sind Arrays?
Bevor wir uns den Details widmen, lassen Sie uns verstehen, was Arrays sind. Stellt Euch vor, Ihr habt eine Menge Früchte und entscheidet Euch stattdessen, sie in einem schönen, organisierten Obstkorbf zu platzieren, anstatt sie in der Küche verstreut zu lassen. Das ist im Grunde genommen, was ein Array in der Programmierung ist – ein Behälter, der mehrere Elemente desselben Typs ordentlich anordnet, um leicht darauf zugreifen zu können.
Definition von Array-Werten
In Unix/Linux-Shell-Skripten ist die Definition von Arrays ein Kinderspiel. Lassen Sie uns mit einem einfachen Beispiel beginnen:
fruits=("apple" "banana" "cherry" "date")
Hier haben wir ein Array namens fruits
mit vier Elementen erstellt. Es ist wie unser virtueller Obstkorb! Jedes Element ist eine separate Zeichenkette, die in Anführungszeichen eingeschlossen und durch Leerzeichen getrennt ist.
Aber wartet, es gibt mehr! Ihr könnt auch Arrays elementweise definieren:
vegetables[0]="carrot"
vegetables[1]="broccoli"
vegetables[2]="spinach"
In diesem Fall geben wir manuell den Index (Position) jedes Elements an. Denkt daran, dass in den meisten Programmiersprachen, einschließlich Shell-Skripten, Array-Indizes bei 0 beginnen, nicht bei 1. Das ist ein Kuriosum, das viele Anfänger stutzig macht, also denkt daran!
Eine spaßige Methode, um Array-Indizierung zu merken
Ich sage meinen Schülern oft, sie sollen sich vorstellen, sie wären in einem Rennen. Die Person an der Startlinie ist nicht Nummer 1 – sie ist Nummer 0! Es ist ein bisschen seltsam, aber es hilft zu merken, dass Arrays bei Index 0 beginnen.
Zugriff auf Array-Werte
Nun, da wir unsere virtuellen Körbe gefüllt haben, wie holen wir die Gegenstände heraus? Lassen Sie uns erforschen!
Zugriff auf individuelle Elemente
Um ein bestimmtes Element zuzugreifen, verwenden wir seinen Index:
echo ${fruits[2]}
Dieser Befehl wird ausgeben: cherry
Warum? Weil cherry
an Index 2 ist (denkt daran, wir zählen ab 0).
Zugriff auf alle Elemente
Was ist, wenn wir alle unsere Früchte auf einmal sehen wollen? Wir können das @
-Symbol verwenden:
echo ${fruits[@]}
Dies wird anzeigen: apple banana cherry date
Zugriff auf die Array-Länge
Interessiert daran, wie viele Elemente in unserem Array sind? Hier ist, wie Ihr es herausfindet:
echo ${#fruits[@]}
Dies wird ausgeben: 4
Das #
-Symbol vor dem Array-Namen gibt uns die Länge des Arrays.
Praktische Beispiele
Lassen Sie uns unser Wissen mit einigen realen Weltbeispielen anwenden!
Beispiel 1: Grüße an mehrere Benutzer
users=("Alice" "Bob" "Charlie")
for user in "${users[@]}"
do
echo "Hello, $user!"
done
Dieses Skript wird ausgeben:
Hello, Alice!
Hello, Bob!
Hello, Charlie!
Hier verwenden wir eine for
-Schleife, um durch unser Array zu iterieren und jeden Benutzer individuell zu begrüßen. Es ist, als hätten wir einen freundlichen Roboter, der nie vergisst, Hello
zu sagen!
Beispiel 2: Berechnung der Gesamtfiligröße
files=("document.txt" "image.jpg" "script.sh")
total_size=0
for file in "${files[@]}"
do
size=$(stat -f%z "$file")
total_size=$((total_size + size))
done
echo "Total size of files: $total_size bytes"
Dieses Skript berechnet die Gesamtauflösung mehrerer Dateien. Es ist besonders nützlich, wenn Ihr schnell die Dateigrößen summieren wollt, ohne sie manuell hinzuzufügen.
Fortgeschrittene Array-Techniken
Nun, da wir die Grundlagen abgedeckt haben, lassen Sie uns einige fortgeschrittene Techniken erkunden!
Slicing Arrays
Ihr könnt einen Abschnitt eines Arrays extrahieren, indem Ihr slicing verwendet:
colors=("red" "green" "blue" "yellow" "purple")
echo ${colors[@]:1:3}
Dies wird ausgeben: green blue yellow
Hier bedeutet 1:3
, "beginne bei Index 1 und gib mir 3 Elemente".
Hinzufügen von Elementen zu einem Array
Ihr könnt Elemente zu einem bestehenden Array hinzufügen:
fruits+=("elderberry")
echo ${fruits[@]}
Dies wird jetzt elderberry
am Ende unseres Früchte-Arrays enthalten.
Entfernen von Elementen aus einem Array
Das Entfernen von Elementen ist etwas schwieriger. Wir können den unset
-Befehl verwenden:
unset fruits[1]
echo ${fruits[@]}
Dies entfernt das zweite Element (denkt daran, Index 1) aus unserem Früchte-Array.
Häufige Array-Methoden
Hier ist eine Tabelle, die einige häufige Array-Operationen in Unix/Linux-Shell-Skripten zusammenfasst:
Operation | Syntax | Beschreibung |
---|---|---|
Array definieren | array=("elem1" "elem2" "elem3") |
Erstellt ein neues Array |
Element zugreifen | ${array[index]} |
Holt das Element an der angegebenen Position |
Alle Elemente zugreifen | ${array[@]} |
Holt alle Elemente |
Array-Länge | ${#array[@]} |
Gibt die Anzahl der Elemente zurück |
Element hinzufügen | array+=("new_elem") |
Fügt ein neues Element zum Array hinzu |
Element entfernen | unset array[index] |
Entfernt das Element an der angegebenen Position |
Array slicen | ${array[@]:start:count} |
Extrahiert einen Abschnitt des Arrays |
Schlussfolgerung
Glückwunsch! Ihr habt die ersten Schritte in die Welt der Arrays in Unix/Linux-Shell-Skripten unternommen. Wir haben die Definition von Arrays, den Zugriff auf ihre Werte und sogar einige fortgeschrittene Techniken behandelt. Denkt daran, Übung macht den Meister, also zögert nicht, diese Konzepte in Euren eigenen Skripten auszuprobieren.
Arrays sind unglaublich vielseitige Werkzeuge, die viele Programmieraufgaben vereinfachen können. Ob Ihr eine Liste von Benutzern verwaltet, mehrere Dateien verarbeitet oder Daten organisiert, Arrays werden Eure treuen Begleiter auf Eurer Programmierreise sein.
Als wir uns verabschieden, erinnere ich mich an ein Zitat des berühmten Informatikers Alan Kay: "Einfache Dinge sollten einfach sein, komplexe Dinge sollten möglich sein." Arrays verkörpern dieses Prinzip perfekt – sie sind einfach zu verwenden, aber sie eröffnen eine Welt voller komplexer Möglichkeiten.
Weiter codieren, weiter erkunden und vor allem Spaß mit Arrays haben! Sie sind nicht nur Datenstrukturen; sie sind die Bausteine Eurer zukünftigen Programmiermeisterwerke. Bis zum nächsten Mal, fröhliches Skripten!
Credits: Image by storyset