Arreglos en Bash: tipos, índices y sintaxis

Clase 23 de 43Curso de Programación en Bash Shell

Resumen

Los arreglos en Bash te permiten manejar múltiples valores con eficiencia y claridad. Aquí verás cómo definirlos, imprimirlos, medir su tamaño, acceder por índice y modificar posiciones, tal como se mostró en un script práctico con correcciones reales de sintaxis. Conecta estas técnicas con futuras sentencias de iteración como for y while para recorrer datos de forma confiable.

Fundamentos de arreglos en Bash

Los arreglos en Bash son variables que almacenan varios valores. Pueden ser números, cadenas o rangos. Se indexan desde 0, lo que significa que el primer elemento está en la posición 0. Además, pueden crecer o reducirse después de su creación sin problemas.

  • Índice base cero: el primer elemento está en 0.
  • Tipos de elementos: números, cadenas y rangos.
  • Flexibilidad: se pueden añadir o eliminar posiciones.
  • Uso frecuente: soporte ideal para sentencias de iteración.

Ejemplo de inicio de script con shebang y arreglos, incluyendo rangos con llaves:

#!/usr/bin/env bash
# programa para ejemplificar el uso de arreglos

arreglo_numeros=(1 2 3 4 5 6)
arreglo_cadenas=(Pedro Susana)
# rangos: de la A a la Z y del 10 al 20
arreglo_rangos=({A..Z} {10..20})

¿Cómo definir, imprimir y medir arreglos en Bash?

Definir es directo: usa paréntesis y separa valores por espacio. Para imprimir todos los valores, usa ${arreglo[]}. Para el tamaño, antepone # como en ${#arreglo[]}. Acceder por índice exige recordar el índice 0.

¿Cómo se definen arreglos y rangos en Bash?

  • Números: usa valores separados por espacio.
  • Cadenas: declara nombres como elementos del arreglo.
  • Rangos: emplea llaves con dos puntos dobles, por ejemplo {A..Z} y {10..20}.
arreglo_numeros=(1 2 3 4 5 6)
arreglo_cadenas=(Pedro Susana)
arreglo_rangos=({A..Z} {10..20})

¿Cómo imprimir todos los valores y el tamaño?

  • Todos los valores: ${arreglo[*]}.
  • Tamaño del arreglo: ${#arreglo[*]}.
echo "Arreglo números: ${arreglo_numeros[*]}"
echo "Arreglo cadenas: ${arreglo_cadenas[*]}"
echo "Arreglo rangos: ${arreglo_rangos[*]}"

echo "Tamaño números: ${#arreglo_numeros[*]}"
echo "Tamaño cadenas: ${#arreglo_cadenas[*]}"
echo "Tamaño rangos: ${#arreglo_rangos[*]}"

En la ejecución mostrada, se observó: tamaño 6 para números, tamaño 4 para cadenas y tamaño 27 para rangos. Al acceder a la posición 3, se obtuvo el cuarto elemento: por ejemplo, la letra D en el arreglo de rangos.

¿Cómo acceder por índice base cero?

  • Recuerda: posición 3 equivale al cuarto elemento.
echo "Posición 3 en números: ${arreglo_numeros[3]}"
echo "Posición 3 en cadenas: ${arreglo_cadenas[3]}"
echo "Posición 3 en rangos: ${arreglo_rangos[3]}"

¿Cómo añadir, eliminar y evitar errores comunes?

Puedes modificar arreglos existentes añadiendo valores en posiciones nuevas o eliminando elementos específicos. Además, revisa llaves, corchetes y nombres de variables: un detalle mal escrito rompe la ejecución.

¿Cómo añadir o eliminar posiciones en un arreglo?

  • Añadir en índice 7 el valor 20.
  • Eliminar la posición 0 para “liberar” el primer elemento.
# añadir
darreglo_numeros[7]=20
# eliminar (liberar)
unset arreglo_numeros[0]

# verificar
echo "Arreglo números tras cambios: ${arreglo_numeros[*]}"
echo "Tamaño números: ${#arreglo_numeros[*]}"

Tras eliminar el índice 0, el primer valor ya no aparece al imprimir. Así se comprobó cuando el arreglo numérico dejó de mostrar el 1 al inicio.

¿Qué errores comunes debes revisar al ejecutar?

  • Confundir llaves con corchetes en rangos: usa llaves { }.
  • Escribir mal el nombre de la variable: “arreglo_rengos” vs “arreglo_rangos”.
  • Colores del entorno del kernel: pueden dificultar ver caracteres; revisa con atención.

¿Cómo ejecutar el script en Ubuntu con permisos?

  • Concede permisos de ejecución.
  • Ejecuta con ruta relativa.
chmod +x arreglos.sh
./arreglos.sh

¿Te gustaría compartir otras prácticas con arreglos o dudas sobre iteración con for y while? Deja tus comentarios y sumemos ideas para mejorar el manejo de datos en Bash.

      Arreglos en Bash: tipos, índices y sintaxis