Mehrdimensionales Array in Bash

MD Aminul Islam 20 Juni 2023
  1. Grundlegende Methode zum Deklarieren eines mehrdimensionalen Arrays in Bash
  2. Deklarieren Sie ein zweidimensionales Array mit einem assoziativen Array in Bash
Mehrdimensionales Array in Bash

Ein mehrdimensionales Array ist ein sehr wichtiges Element für jedes Programm. Es wird hauptsächlich zum Erstellen einer Tabellenansicht der Daten und für viele andere Zwecke verwendet.

Dieser Artikel beschreibt, wie ein zweidimensionales Array erstellt wird. Außerdem werden wir das Thema mit notwendigen Beispielen und Erklärungen diskutieren.

Wir werden hier zwei verschiedene Methoden diskutieren.

Grundlegende Methode zum Deklarieren eines mehrdimensionalen Arrays in Bash

Dies ist die grundlegendste Methode zum Erstellen eines mehrdimensionalen Arrays. In unserem Beispiel unten erstellen wir ein sehr einfaches zweidimensionales Array.

Unten ist der Code für unser Beispiel.

ArrayOfArray_1=("Alen" "24")
ArrayOfArray_2=("Walker" "31")
MainArray=(
  ArrayOfArray_1[@]
  ArrayOfArray_2[@]
)

ArrayLength=${#MainArray[@]}
for ((i=0; i<$ArrayLength; i++))
do
  name=${!MainArray[i]:0:1}
  age=${!MainArray[i]:1:1}
  echo "Name : ${name}"
  echo "Age : ${age}"
done

Der obige Code zeigt, dass wir zwei verschiedene Arrays namens ArrayOfArray_1 und ArrayOfArray_2 deklariert haben. Danach haben wir unser Hauptarray deklariert, dessen Element diese beiden Arrays sind, die wir kürzlich deklariert haben.

Dann haben wir die Länge des Arrays für eine Schleife berechnet. Innerhalb der Schleife extrahieren wir die Daten aus diesen beiden Unterarrays, indem wir das Hauptarray indizieren.

Zuletzt echo en wir das Endergebnis. Nach dem Ausführen des Skripts erhalten Sie eine Ausgabe wie die folgende.

Name : Alen
Age : 24
Name : Walker
Age : 31

Deklarieren Sie ein zweidimensionales Array mit einem assoziativen Array in Bash

Diese Methode ist etwas komplex. Diese Methode behandelt ein spezielles Bash-Skript-Array namens assoziatives Array.

Ein assoziatives Array ist ein spezielles Array, das Zeichenfolgenwerte als Schlüssel oder Index speichern kann. Es ist ähnlich wie bei den anderen Programmiersprachen.

Die allgemeine Syntax zum Deklarieren eines assoziativen Arrays lautet declare -A ArrayName.

Unser Beispiel unten erstellt ein 2D-Array mit fünf Zeilen und sechs Spalten. Unten ist der Code für unser Beispiel.

declare -A Array2D
RowNum=5
ColumnNum=6

for ((i=1;i<=RowNum;i++)) do
    for ((j=1;j<=ColumnNum;j++)) do
        Array2D[$i,$j]=$RANDOM
    done
done

f1="%$((${#RowNum}+1))s"
f2=" %9s"

printf "$f1" ''
for ((i=1;i<=RowNum;i++)) do
    printf "$f2" $i
done
echo

for ((j=1;j<=ColumnNum;j++)) do
    printf "$f1" $j
    for ((i=1;i<=RowNum;i++)) do
        printf "$f2" ${Array2D[$i,$j]}
    done
    echo
done

Im obigen Beispiel haben wir ein assoziatives Array namens Array2D deklariert.

Danach haben wir zwei Variablen erstellt und ihnen einen ganzzahligen Wert zugewiesen. Dieser ganzzahlige Wert gibt die Anzahl der Zeilen und Spalten an.

Dann haben wir eine verschachtelte Schleife erstellt, die das Array mit der Zufallszahl füllt.

Jetzt sind wir mit der Deklaration und Organisation des Arrays fertig. Es ist Zeit zu sehen, wie unser 2D-Array aussieht.

Wir tun dies, indem wir einige Schleifen verwenden, wie im Code zu sehen ist. Wenn Sie das obige Skript ausführen, sehen Sie eine Ausgabe wie die folgende.

           1         2         3         4         5
 1     16700      5241      2599     24330      1662
 2     23264     19557     10425     13413     25606
 3     17987      4199     13598     23897     26734
 4     24420     27830     24855      8165     13531
 5     15495     18790     13347     12947     11826
 6     23458     22838       137     32454     32441

Alle Codes in diesem Artikel sind in Bash geschrieben. Es funktioniert nur in der Linux Shell-Umgebung.

MD Aminul Islam avatar MD Aminul Islam avatar

Aminul Is an Expert Technical Writer and Full-Stack Developer. He has hands-on working experience on numerous Developer Platforms and SAAS startups. He is highly skilled in numerous Programming languages and Frameworks. He can write professional technical articles like Reviews, Programming, Documentation, SOP, User manual, Whitepaper, etc.

LinkedIn

Verwandter Artikel - Bash Array