Skip to content

Arrays

Listas indexadas y (Bash 4+) asociativas. Siempre entre comillas al expandir: "${arr[@]}".


Terminal window
nombres=("Ana" "Luis" "Pedro")
numeros[0]=10
numeros[1]=20
echo "${nombres[0]}" # Ana
echo "${nombres[@]}" # todos
echo "${#nombres[@]}" # tamaño → 3
echo "${nombres[@]:1:2}" # slice: desde 1, 2 elems
ConceptoSignificado
arr=(a b c)Definir.
${arr[i]}Elemento i.
${arr[@]} / ${arr[*]}Todos (mejor @ en bucles).
${#arr[@]}Longitud.
${!arr[@]}Índices.
arr+=("x")Añadir al final.
unset arr[i]Quitar un índice.
declare -AArray asociativo (Bash 4+).

Terminal window
for nombre in "${nombres[@]}"; do
echo "Hola $nombre"
done
for i in "${!nombres[@]}"; do
echo "Índice: $i → ${nombres[$i]}"
done
nombres+=("Carla")
nombres[1]="Lucía"
unset nombres[1]

Terminal window
declare -A capitales
capitales[Colombia]="Bogotá"
capitales[México]="CDMX"
echo "${capitales[Colombia]}"
for pais in "${!capitales[@]}"; do
echo "$pais → ${capitales[$pais]}"
done

Ordenar números:

Terminal window
numeros=(3 8 1)
sorted=($(printf '%s\n' "${numeros[@]}" | sort -n))
echo "${sorted[@]}" # 1 3 8

Docs: Bash arrays.