Download La guida di Bash per i principianti

Transcript
MATRICE=(valore1 valore2 … valoreN)
Ogni valore è poi nella forma di [numeroindice=]stringa. Il numero d'indice è facoltativo. Se è
fornito, quell'indice è assegnato ad esso: altrimenti l'indice dell'elemento assegnato è il numero
dell'ultimo indice che è stato assegnato più uno. Questo formato è accettato anche da declare. Se
non vengono forniti numeri d'indice, l'indicizzazione inizia da zero.
L'aggiunta di membri mancanti o extra in una matrice si fa usando la sintassi:
NOMEMATRICE[NUMEROINDICE]=valore
Ricordate che l'integrato read mette a disposizione l'opzione -a, che consente la lettura e
l'assegnamento di valori alle variabili membri di una matrice.
10.2.2. Dereferenziamento delle variabili di una matrice
Per fare riferimento al contenuto di una voce di una matrice, usate le parentesi graffe. Ciò è
necessario, come potete constatare nell'esempio seguente, per scavalcare l'interpretazione degli
operatori di espansione da parte della shell. Se il numero di indice è @ o *, tutti i membri di una
matrice sono referenziati.
[bob in ~] MATRICE=(one two tre)
[bob in ~] echo ${MATRICE[*]}
uno due tre
[bob in ~] echo $MATRICE[*]
uno[*]
[bob in ~] echo ${MATRICE[2]}
tre
[bob in ~] MATRICE[3]=quattro
[bob in ~] echo ${MATRICE[*]}
uno due tre quattro
Fare riferimento al contenuto di una variabile membro di una matrice senza fornire un numero
indice è lo stesso di fare riferimento al contenuto del primo elemento, quello referenziato con
numero di indice zero.
10.2.3. Cancellare le variabili matriciali
L'integrato unset è usato per distruggere matrici o variabili membri di una matrice:
[bob in ~] unset MATRICE[1]
[bob in ~] echo ${MATRICE[*]}
uno tre quattro
[bob in ~] unset MATRICE
Capitolo 10. Di più sulle variabili
147