Script di shell Bash Iterate attraverso i valori dell'array

Avere una matrice di variabili è inutile a meno che non si possano usare quei valori in qualche modo. Questa ricetta tecnica mostra alcuni metodi per il looping dei valori di un array nella shell bash.


Prendi, per esempio, la definizione dell'array qui sotto:

names = (Jennifer Tonya Anna Sadie)

La seguente espressione valuta in tutti i valori dell'array:

$ {nome [@]}

Può anche essere utilizzato ovunque sia possibile utilizzare una variabile o una stringa.

Un ciclo for semplice può iterare attraverso questo array un valore alla volta:

per nome in $ {nomi [@]}
fare
echo $ nome
# altre cose su $ name
fatto

Questo script passerà in rassegna i valori dell'array e li stamperà, uno per riga. Ulteriori istruzioni possono essere inserite all'interno del corpo del ciclo per intraprendere ulteriori azioni, come la modifica di ogni file in una matrice di nomi di file.

A volte è utile eseguire il ciclo di un array e conoscere l'indice numerico dell'array che si sta utilizzando (ad esempio, in modo da poter fare riferimento a un altro array con lo stesso indice). Lo stesso ciclo nell'esempio sopra può essere raggiunto anche in questo modo:

for ((i = 0; i <$ {# nomi [@]}; i ++)) fanno echo $ {nomi [$ i]} # yadda yadda fatto

In questo esempio, il valore $ {# nomi [@]} viene valutato nel numero di elementi dell'array (4 in questo caso). Si accede ai singoli elementi dell'array, uno alla volta, usando l'indice intero $ i come $ {nomi [$ i]}