Bash-Shell-Skript durchläuft Array-Werte

Ein Array von Variablen zu haben, nützt nichts, es sei denn, Sie können diese Werte irgendwie verwenden. Dieses Technikrezept zeigt einige Methoden zum Durchlaufen der Werte eines Arrays in der Bash-Shell.


Nehmen Sie zum Beispiel die Array-Definition unten:

Namen = (Jennifer Tonya Anna Sadie)

Der folgende Ausdruck wertet alle Werte des Arrays aus:

$ {names [@]}

Es kann auch überall dort verwendet werden, wo eine Variable oder ein String verwendet werden kann.

Eine einfache for-Schleife kann dieses Array einzeln nacheinander durchlaufen:

für den Namen in $ {names [@]}
tun
echo $ name
# Sonstiges auf $ name
erledigt

Dieses Skript durchläuft die Array-Werte und gibt sie pro Zeile aus. Zusätzliche Anweisungen können innerhalb des Schleifenkörpers platziert werden, um weitere Aktionen auszuführen, z. B. das Ändern jeder Datei in einem Array von Dateinamen.

In manchen Fällen ist es nützlich, ein Array zu durchlaufen und den numerischen Index des von Ihnen verwendeten Arrays zu kennen (z. B. damit Sie auf ein anderes Array mit demselben Index verweisen können). Dieselbe Schleife im obigen Beispiel kann auch auf diese Weise erreicht werden:

für ((i = 0; i <$ {# namen [@]}; i ++)) echo $ {names [$ i]} # yadda yadda done

In diesem Beispiel wird der Wert $ {# names [@]} nach der Anzahl der Elemente im Array (in diesem Fall 4) berechnet. Auf die einzelnen Elemente des Arrays wird nacheinander zugegriffen, wobei die Index-Ganzzahl $ i als $ {names [$ i]} verwendet wird.