Bash: Cómo iterar a través de una lista de cadenas de texto
¿Alguna vez has necesitado realizar la misma operación sobre múltiples cadenas de texto en un script BASH? En este artículo, exploraremos cómo lograr esto iterando sobre una lista o array de cadenas de texto definidas en una variable.
El script de ejemplo
Comencemos con un script BASH de ejemplo que demuestra este concepto. Puedes ejecutar directamente este script en una consola de BASH o incluirlo en un script.
declare -a entries=(
"First"
"Second"
"Third"
"The fourth"
)
for entry in "${entries[@]}"; do
echo "$entry entry"
done
Si ejecutamos el script obtendremos la siguiente salida:
First entry
Second entry
Third entry
The fourth entry
Este script es muy sencillo y sirve para ilustrar el concepto. No obstante, puedes aprovecharlo como base para operaciones más complejas. Por ejemplo, ejecutar comandos para cada entrada o utilizar las entradas como parámetros de entrada para otras expresiones.
Entendiendo el script
Ahora analizaremos cada parte del script para entender cómo funciona.
Definiendo la variable con la lista de cadenas de texto
La primera línea del script declara una variable de tipo array llamada entries
aprovechando el
builtin declare
proporcionado por BASH.
La sintaxis de declare
para este caso es la siguiente:
declare -a name=(value1 value2 ... valueN)
Declarar arrays explícitamente es una buena práctica en scripts BASH.
Iterando sobre el array
Para iterar sobre el array utilizamos un looping construct del siguiente modo:
for entry in "${entries[@]}"; do
Aquí, expandimos la variable array entries
usando "${entries[@]}"
.
Esto preserva los elementos individuales, incluidos los espacios dentro de ellos.
Sin las comillas dobles, los elementos como "The fourth" se tratarían como palabras separadas.
Esta sería la salida en caso de que nos olvidáramos de encerrar la variable entre comillas dobles:
First entry
Second entry
Third entry
The entry
fourth entry
Siguiendo estos sencillos pasos, puedes iterar de forma eficiente a través de una lista de cadenas de texto en tus scripts BASH. Ahora tienes los conocimientos para aplicar esta técnica a varios escenarios en tus aventuras de scripting.
¡Feliz scripting!