Usar array en Linux Bash

Yahya Irmak 24 marzo 2022
Usar array en Linux Bash

Bash tiene una estructura de array (algunos lenguajes la llaman lista). En este artículo, explicaremos esta estructura. Más adelante, examinaremos los siguientes temas en Bash scripting.

  • Declaración de array
  • Acceder a valores del array
  • Agregar nuevo valor al array
  • Eliminar un valor del array

un array es una estructura de datos que contiene datos similares juntos. Cada dato en la array tiene un índice, y el índice del primer elemento es 0. Podemos acceder a estos datos de forma secuencial con un bucle o individualmente utilizando el índice de datos. También podemos cambiar la array, agregar nuevos valores y eliminar valores existentes.

Usando Array en Bash

Ahora que sabemos qué es un array, podemos examinar su uso en Bash.

Declarar un array

un array se declara encerrando los valores entre paréntesis. Solo hay espacios entre los valores, no hay caracteres como comas. A continuación se muestra un ejemplo de declaración de array.

arr=("black" "white" "red" "blue" "green")

Podemos usar los siguientes métodos para declarar un array de valores enteros.

intArr=(1 2 3 4)
intArr=($(seq 1 4))
intArr=({1..4}) 

Estos ejemplos declaran un array que contiene los números 1 a 4.

Acceder a un array

Hay muchas formas diferentes de acceder a los datos en un array. Por ejemplo, podemos imprimir la array completa, acceder a un solo elemento usando el índice o acceder a cada elemento a su vez con un bucle. Vamos a explicar cada método uno por uno.

Acceda a todal array

Podemos usar los comandos [*] o [@] para acceder a todos los valores que contiene un array. Por ejemplo, usemos estos comandos para imprimir todos los valores en la array arr que definimos anteriormente.

arr=("black" "white" "red" "blue" "green")
echo "With *: ${arr[*]}"
echo "With @: ${arr[@]}"

Accede a todal array

Acceder a un elemento con índice

El índice del primer elemento del array es 0, y los índices de los siguientes elementos aumentan secuencialmente. Podemos acceder al elemento por el número de índice del elemento en la array. Por ejemplo, usamos el código Bash a continuación para obtener el valor red en la array arr.

arr=("black" "white" "red" "blue" "green")
echo "${arr[2]}"

Acceder al elemento con índice

Acceder a elementos de array con bucle

Podemos usar el bucle for para acceder a todos los elementos de un array uno por uno. A continuación se muestra el script Bash que imprimirá cada color en la array arr en la pantalla.

arr=("black" "white" "red" "blue" "green")
for color in ${arr[@]}; do
  echo $color
done

Elementos de acceso con lazo

Si queremos acceder a estos valores junto con el número de índice, podemos usar el siguiente código.

arr=("black" "white" "red" "blue" "green")
for i in ${!arr[@]}; do
  echo "$i: ${arr[$i]}"
done

El comando ${!arr[@]} devuelve los índices de todos los valores del array. Luego, se accede al elemento utilizando estos índices.

Acceder a elementos numerados con bucle

Agregar nuevo elemento a un array

Para agregar un nuevo elemento al array, podemos asignar un número de índice al nuevo valor o usar el operador +=.

arr=("black" "white" "red" "blue" "green")
echo "Before adding purple: ${arr[@]}"
arr[5]="purple" # or use arr+=("purple"), exactly same
echo "After adding purple: ${arr[@]}"

Agregar elemento al array

Eliminar un elemento de un array

Podemos usar el comando unset para eliminar cualquier dato del array o incluso eliminar completamente el propio array.

arr=("black" "white" "red" "blue" "green")
echo "Before removing white: ${arr[@]}"
unset arr[1]
echo "After removing white: ${arr[@]}"

Eliminar un elemento del array

Yahya Irmak avatar Yahya Irmak avatar

Yahya Irmak has experience in full stack technologies such as Java, Spring Boot, JavaScript, CSS, HTML.

LinkedIn

Artículo relacionado - Bash Array