Arreglos en Shell

ShellBeginner
Practicar Ahora

Introducción

En esta práctica, aprenderás a trabajar con arreglos (arrays) en la programación de shell. Los arreglos son estructuras de datos que te permiten almacenar múltiples valores bajo un solo nombre, lo que facilita la organización y manipulación de la información. Aprenderás a inicializar arreglos, añadirles elementos, acceder a ellos mediante su índice y determinar la cantidad de elementos que contienen. Este conocimiento es fundamental para tareas de scripting de shell más avanzadas y para el procesamiento de datos.

Este es un Laboratorio Guiado, que proporciona instrucciones paso a paso para ayudarte a aprender y practicar. Sigue las instrucciones cuidadosamente para completar cada paso y obtener experiencia práctica. Los datos históricos muestran que este es un laboratorio de nivel principiante con una tasa de finalización del 97%. Ha recibido una tasa de valoraciones positivas del 100% por parte de los alumnos.

Crear un nuevo archivo de script de shell

Comencemos creando un nuevo archivo de script de shell donde escribiremos nuestras operaciones con arreglos.

  1. Abre tu terminal en el WebIDE.

  2. Dirígete al directorio del proyecto:

    cd ~/project
  3. Crea un nuevo archivo llamado arrays.sh usando el comando touch:

    touch arrays.sh
  4. Abre el archivo arrays.sh en el WebIDE.

Inicializar arreglos vacíos

Ahora que tenemos nuestro archivo de script, comencemos inicializando tres arreglos vacíos.

Añade el siguiente código a tu archivo arrays.sh:

#!/bin/bash

## Initialize empty arrays
NUMBERS=()
STRINGS=()
NAMES=()

Analicemos lo que hace este código:

  • La primera línea #!/bin/bash se conoce como shebang. Indica al sistema que este script debe ser ejecutado por el intérprete de Bash.
  • Estamos creando tres arreglos vacíos: NUMBERS, STRINGS y NAMES.
  • La sintaxis () inicializa un arreglo sin elementos.

Añadir elementos a los arreglos

Una vez definidos nuestros arreglos vacíos, vamos a añadirles algunos elementos.

Añade el siguiente código a tu archivo arrays.sh, debajo de la inicialización de los arreglos:

## Add elements to NUMBERS array
NUMBERS+=(1)
NUMBERS+=(2)
NUMBERS+=(3)

## Add elements to STRINGS array
STRINGS+=("hello")
STRINGS+=("world")

## Add elements to NAMES array
NAMES+=("John")
NAMES+=("Eric")
NAMES+=("Jessica")

Esto es lo que hace este código:

  • Utilizamos el operador += para adjuntar elementos al final de nuestros arreglos.
  • Para NUMBERS, estamos añadiendo los números enteros 1, 2 y 3.
  • Para STRINGS, añadimos las palabras "hello" y "world".
  • Para NAMES, añadimos tres nombres: "John", "Eric" y "Jessica".
  • Observa que los elementos de texto (strings) se encierran entre comillas, mientras que los números no las necesitan obligatoriamente.

Determinar el número de elementos en un arreglo

Una operación común con arreglos es averiguar cuántos elementos contienen. Hagamos esto con nuestro arreglo NAMES.

Añade el siguiente código a tu archivo arrays.sh:

## Get the number of elements in the NAMES array
NumberOfNames=${#NAMES[@]}

Esta línea realiza lo siguiente:

  • ${#NAMES[@]} nos devuelve la cantidad total de elementos en el arreglo NAMES.
  • Almacenamos este valor en una variable llamada NumberOfNames.
  • El símbolo @ dentro de los corchetes hace referencia a todos los elementos del arreglo.
  • El símbolo # antes del nombre NAMES le indica al shell que cuente los elementos en lugar de mostrar su contenido.

Acceder a un elemento específico en un arreglo

Ahora, vamos a acceder a un elemento específico de nuestro arreglo NAMES. Obtendremos el segundo nombre de la lista.

Añade este código a tu archivo arrays.sh:

## Access the second name in the NAMES array
second_name=${NAMES[1]}

Esto es lo que hace este código:

  • Accedemos al segundo elemento del arreglo NAMES usando ${NAMES[1]}.
  • Recuerda que en Bash, los índices de los arreglos comienzan en 0, por lo que [1] nos da el segundo elemento.
  • Almacenamos este valor en una variable llamada second_name.

Imprimir los arreglos y variables

Finalmente, añadamos código para imprimir nuestros arreglos y variables para verificar los resultados de nuestras operaciones.

Añade el siguiente código al final de tu archivo arrays.sh:

## Print the arrays and variables
echo "NUMBERS array: ${NUMBERS[@]}"
echo "STRINGS array: ${STRINGS[@]}"
echo "The number of names listed in the NAMES array: $NumberOfNames"
echo "The second name on the NAMES list is: $second_name"

Este código hace lo siguiente:

  • Usamos echo para mostrar texto en la consola.
  • ${NUMBERS[@]} y ${STRINGS[@]} imprimen todos los elementos de estos arreglos.
  • Imprimimos las variables NumberOfNames y second_name que creamos anteriormente.

Ejecutar el script

Ahora que hemos escrito nuestro script, es momento de ejecutarlo y ver los resultados.

  1. En tu terminal, asegúrate de estar en el directorio correcto:

    cd ~/project
  2. Otorga permisos de ejecución al script:

    chmod +x arrays.sh
  3. Ejecuta el script:

    ./arrays.sh

Deberías ver una salida similar a esta:

NUMBERS array: 1 2 3
STRINGS array: hello world
The number of names listed in the NAMES array: 3
The second name on the NAMES list is: Eric

Esta salida confirma que nuestras operaciones con arreglos fueron exitosas:

  • El arreglo NUMBERS contiene 1, 2 y 3.
  • El arreglo STRINGS contiene "hello" y "world".
  • Contamos correctamente 3 nombres en el arreglo NAMES.
  • Recuperamos con éxito "Eric" como el segundo nombre.

Resumen

En este laboratorio, has aprendido los conceptos fundamentales para trabajar con arreglos en scripting de shell. Has practicado cómo inicializar arreglos, añadirles elementos, acceder a elementos específicos y determinar el tamaño total de un arreglo. Estas habilidades son cruciales para tareas de automatización más complejas, especialmente cuando manejas listas de datos o necesitas realizar operaciones sobre múltiples elementos. Los arreglos ofrecen una forma potente de organizar y manipular datos en tus scripts, haciendo que tu código sea más eficiente y fácil de mantener.