Arrays
Arrays en bash script
Section titled “Arrays en bash script”Temario
Section titled “Temario”1. Definir arrays
Section titled “1. Definir arrays”# Array con valoresnombres=("Ana" "Luis" "Pedro")
# Otra forma (asignando por índice)numeros[0]=10numeros[1]=20numeros[2]=302. Acceder a elementos
Section titled “2. Acceder a elementos”<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”} />
3. Mostrar todos los elementos
Section titled “3. Mostrar todos los elementos”<Codigo language=“bash” code= {“echo ”${nombres[@]}” # Ana Luis Pedro\necho ”${numeros[*]}” # 10 20 30”} />
4. Tamaño del array
Section titled “4. Tamaño del array”<Codigo language=“bash” code= {“echo ”$” # 3”} />
5. Recorrer arrays
Section titled “5. Recorrer arrays”Con for
Section titled “Con for”<Codigo language=“bash” code= {“for nombre in ”${nombres[@]}”; do\necho “Hola $nombre”\ndone”} />
Salida:
<Codigo language=“bash” code=
{Hola Ana Hola Luis Hola Pedro}
/>
Con índices
Section titled “Con índices”<Codigo language=“bash” code= {“for i in ”${!nombres[@]}”; do\n echo “Índice: $i → Valor: ${nombres[$i]}“\ndone”} />
6. Añadir y modificar elementos
Section titled “6. Añadir y modificar elementos”<Codigo language=“bash” code=
{nombres+=("Carla") # Agregar al final nombres[1]="Lucía" # Modificar el índice 1}
/>
7. Eliminar elementos
Section titled “7. Eliminar elementos”<Codigo language=“bash” code=
{unset nombres[1] # Elimina solo el índice 1 unset nombres # Borra todo el array}
/>
8. Subarrays (rebanadas)
Section titled “8. Subarrays (rebanadas)”<Codigo language=“bash” code= {“echo ”${nombres[@]:1:2}” # desde índice 1, tomar 2 elementos”} />
9. Arrays asociativos (tipo diccionario)
Section titled “9. Arrays asociativos (tipo diccionario)”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á}
/>
10. Cosas útiles
Section titled “10. Cosas útiles”- Í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.”}