Skip to content

Arrays


# Array con valores
nombres=("Ana" "Luis" "Pedro")
# Otra forma (asignando por índice)
numeros[0]=10
numeros[1]=20
numeros[2]=30

<Codigo language=“bash” code= {“echo ”${nombres[0]}” # Ana\necho ”${nombres[2]}” # Pedro”} />

Si usas un índice que no existe:

<Codigo language=“bash” code= {“echo ”${nombres[5]}” # vacío”} />


<Codigo language=“bash” code= {“echo ”${nombres[@]}” # Ana Luis Pedro\necho ”${numeros[*]}” # 10 20 30”} />


<Codigo language=“bash” code= {“echo ”$” # 3”} />


<Codigo language=“bash” code= {“for nombre in ”${nombres[@]}”; do\necho “Hola $nombre”\ndone”} />

Salida:

<Codigo language=“bash” code= {Hola Ana Hola Luis Hola Pedro} />

<Codigo language=“bash” code= {“for i in ”${!nombres[@]}”; do\n echo “Índice: $i → Valor: ${nombres[$i]}“\ndone”} />


<Codigo language=“bash” code= {nombres+=("Carla") # Agregar al final nombres[1]="Lucía" # Modificar el índice 1} />


<Codigo language=“bash” code= {unset nombres[1] # Elimina solo el índice 1 unset nombres # Borra todo el array} />


<Codigo language=“bash” code= {“echo ”${nombres[@]:1:2}” # desde índice 1, tomar 2 elementos”} />


Disponibles en Bash 4+.

<Codigo language=“bash” code= {“declare -A capitales\ncapitales[Colombia]=“Bogotá”\ncapitales[México]=“CDMX”\ncapitales[España]=“Madrid”\n\necho ”${capitales[Colombia]}” # Bogotá\n\n# Recorrer claves y valores\nfor pais in ”${!capitales[@]}”; do\n echo “$pais → ${capitales[$pais]}“\ndone”} />

Salida:

<Codigo language=“bash” code= {México → CDMX España → Madrid Colombia → Bogotá} />


  • Índice del último elemento: <Codigo language=“bash” code= {“echo ”${!nombres[@]}” # muestra todos los índices”} />
  • Ordenar un array: <Codigo language=“bash” code= {“numeros=(3 8 1)\nsorted=($(printf “%s\n” ”${numeros[@]}” | sort -n))\necho ”${sorted[@]}” # 1 3 8”} />

En resumen:

  • {“array=(val1 val2 val3) → define.”}
  • {”${array[i]} → acceder.”}
  • {”${array[@]} → todos los valores.”}
  • {“declare -A → arrays asociativos.”}