miércoles, 9 de agosto de 2017

Encontrando los índices usados por un array

Como bash permite que los arrays contengan "huecos" en la asignación de índices, a veces es útil determinar qué elementos existen en realidad. Esto puede hacerse con una expansión de parámetros usando las siguientes fórmulas:

${!array[*]}
${!array[@]}

donde array es el nombre de una variable array. Como en las otras expansiones que usan * y @, la forma @ entre comillas es la más útil, ya que se expande en palabras separadas:

[me@linuxbox ~]$ foo=([2]=a [4]=b [6]=c)
[me@linuxbox ~]$ for i in "${foo[@]}"; do echo $i; done
a
b
c
[me@linuxbox ~]$ for i in "${!foo[@]}"; do echo $i; done
2
4
6

No hay comentarios:

Publicar un comentario