<Precedenti | Contenuti | Succ.>
Trovare gli indici utilizzati da un array
As bash consente agli array di contenere "buchi" nell'assegnazione degli indici, a volte è utile determinare quali elementi esistono effettivamente. Questo può essere fatto con un'espansione dei parametri utilizzando le seguenti forme:
${!schieramento[*]}
${!schieramento[@]}
where schieramento è il nome di una variabile array. Come le altre espansioni che usano * e @, l' @ la forma racchiusa tra virgolette è la più utile, poiché si espande in parole separate:
[io@linuxbox~]$ foo=([2]=a [4]=b [6]=c)
[io@linuxbox~]$ per i in "${foo[@]}"; fai echo $i; fatto
abc
[io@linuxbox~]$ per i in "${!foo[@]}"; fai echo $i; fatto
2
4
6
[io@linuxbox~]$ foo=([2]=a [4]=b [6]=c)
[io@linuxbox~]$ per i in "${foo[@]}"; fai echo $i; fatto
abc
[io@linuxbox~]$ per i in "${!foo[@]}"; fai echo $i; fatto
2
4
6