Utilizzare gli array in bash

Tutta la potenza di bash svelata con pochi e semplici articoli; questa volta prendiamo in esame come utilizzare gli array in Bash e perchè sono utili...

In tutti i linguaggi di programmazione vi imbatterete presto o tardi negli array, ovvero in insiemi di elementi che risultano molto utili in molte occasione, ma che trovano la loro primaria ragion d'essere nel gestire collezioni di dati, magari prelevati da un data-base. Anche in bash possiamo utilizzare gli array, in maniera molto simile a quanto facciamo con altri linguaggi di programmazione.

Definire un array

possiamo definire un array in due modi:

array_di_prova(1 2 3 4 5 6)

oppure possiamo specificare la coppia indice-valore in questo modo

array_di_prova[0]="testo1"

array_di_prova[1]="testo2"

array_di_prova[2]="testo3"

array_di_prova[3]="testo4"

array_di_prova[4]="testo5"

array_di_prova[5]="testo6"

array_di_prova[6]="testo7"

Per accedere al valore memorizzato nell'array ad un determinato indice occorre specificare l'indice medesimo

ad es. echo ${array_di_prova[0]} visualizzerà testo1

Per visualizzare la "lunghezza" dell'array, ovvero quanti elementi conterrà, dovremo dare il comando echo ${#array_di_prova[*]}, mentre dando il comando

echo ${array_di_prova[*]}

visualizzeremo tutti i valori: testo1 testo2 testo3 testo4 testo5 testo6

La stessa cosa la potremo ottenere digitando il comando:

echo ${array_di_prova[@]}

visualizzeremo tutti i valori: testo1 testo2 testo3 testo4 testo5 testo6

Array associativi

La naturale evoluzione sono gli array associativi, ovvero array in cui l'indice no è solo più numerico come nell'esempio precedente, ma può essere anche una stringa; per poter fare questo bisogna dichiarare l'array di tipo associativo, tramite il comando:

declare -A array_di_prova_associativo e possimo quindi popolarlo in questo modo:

array_di_prova_associativo=([indice1]=valore1 [indice2]=valore2)

oppure, nuovamente, con l'associazione indice valore:

array_di_prova_associativo[indice2]=valore2

Tenere a mente che gli array associativi sono stati introdotti in bash a partire dalla versione 4.0

Tramite il comando  echo ${!array_di_prova_associativo[*]} potremo stampare gli indici, ma potremo utilizzare anche il comando:

echo ${!array_di_prova_associativo[@]}

I comandi visti prima per la visualizzazione dei valori contenuti dell'array, sono validi anche per gli array associativi

echo ${array_di_prova_associativo[*]}

o

echo ${array_di_prova_associativo[@]}

porteranno alla stampa di tutti i valori presenti nell'array.

La potenza degli array e la loro utilità appare evidente, pensaimo ad esempio ad elenchi di persone (magari chiamiamo array famiglia) o date (giorni della settimana); avere una collezione di valori e un indice per prelevare da questa collezione proprio il valore che ci interessa, è fondamentale in programmi anche molto semplici e la gestione degli array è anche molto veloce, per cui il consiglio è sicuramente di imparare a utilizzare gli array il prima possibile...