Recorriendo una lista de Strings con Bash

Recorriendo una lista de Strings con Bash

Bash es un lenguaje de programación de scripting muy popular en sistemas Unix y Linux. Un bash-script básico consiste en una serie de comandos de shell ejecutados en secuencia. A menudo, se necesita recorrer una lista de strings para realizar una serie de tareas, como la iteración de un conjunto de archivos o la ejecución de una secuencia de comandos con diferentes argumentos. En este artículo, aprenderemos a hacer esto de manera sencilla y eficiente en Bash.

📋 Aquí podrás encontrar✍
  1. Recorriendo una lista de Strings
    1. Especificando el rango de la lista
    2. Ejecutando comandos para cada elemento en la lista
  2. Conclusión
  3. Preguntas frecuentes
    1. ¿Puedo usar una variable distinta de 'var' en el bucle for?
    2. ¿Puedo agregar un comando if dentro del bucle for?
    3. ¿Puedo utilizar el bucle for para iterar sobre una lista de números?
    4. ¿Cómo puedo declarar una lista de strings en Bash?
  4. Ejemplos de código

Recorriendo una lista de Strings

Para recorrer una lista de strings en Bash, podemos utilizar el bucle for. El formato básico del bucle for es:

for var in cadena1 cadena2 cadena3 ... cadenaN
do
comando1
comando2
....
...
done

En este ejemplo, var es una variable de iteración que toma el valor de cada cadena en la lista. Los comandos dentro del bucle se ejecutan para cada valor de var.

Por ejemplo, para recorrer una lista de nombres y hacer un saludo personalizado a cada uno de ellos, podemos utilizar el siguiente script:

#!/bin/bash
names=("Ana" "Juan" "María" "Carlos")

for name in "${names[@]}"
do
echo "Hola $name, ¿cómo estás?"
done

Este script imprimirá el saludo personalizado para cada elemento en la lista de nombres.

Especificando el rango de la lista

Si queremos recorrer solo un rango específico de la lista, podemos hacerlo especificando los índices de inicio y fin del rango. El siguiente ejemplo muestra cómo imprimir los nombres en una lista de índice 1 a 3:

#!/bin/bash
names=("Ana" "Juan" "María" "Carlos")

for (( i=1; i<=3; i++ )) do echo "${names[$i]}" done

Este script imprimirá los nombres "Juan", "María" y "Carlos".

Ejecutando comandos para cada elemento en la lista

Si queremos ejecutar un comando para cada elemento en la lista, podemos usar el bucle for de la siguiente manera:

#!/bin/bash
files=("file1.txt" "file2.txt" "file3.txt")

for file in "${files[@]}"
do
cat $file
done

Este script imprimirá el contenido de cada archivo en la lista.

Conclusión

Recorrer una lista de strings en Bash es fácil y rápido utilizando el bucle for. Este tipo de iteración es muy útil para realizar tareas repetitivas en un conjunto de datos. Con este artículo, has aprendido cómo recorrer una lista de strings y cómo utilizar el bucle for en Bash.

Preguntas frecuentes

¿Puedo usar una variable distinta de 'var' en el bucle for?

Sí, puedes usar cualquier variable de tu elección. Por ejemplo, si quieres utilizar 'name' en lugar de 'var', este es el formato que deberás usar:

for name in cadena1 cadena2 cadena3 ... cadenaN
do
comando1
comando2
....
...
done

¿Puedo agregar un comando if dentro del bucle for?

Sí, puedes agregar comandos if dentro del bucle for para realizar diferentes acciones según una condición. Por ejemplo, el siguiente código imprimirá 'Hola' para cada nombre en la lista, pero solo imprimirá 'Bienvenido' para el nombre 'Juan':

#!/bin/bash
names=("Ana" "Juan" "María" "Carlos")

for name in "${names[@]}"
do
echo "Hola $name"
if [ $name == "Juan" ]
then
echo "Bienvenido $name"
fi
done

¿Puedo utilizar el bucle for para iterar sobre una lista de números?

Sí, el bucle for también funciona para iterar sobre una lista de números. Por ejemplo, el siguiente código imprimirá los números del 1 al 5:

#!/bin/bash

for i in {1..5}
do
echo $i
done

¿Cómo puedo declarar una lista de strings en Bash?

Puedes declarar una lista de strings en Bash utilizando la siguiente sintaxis:

lista=("cadena1" "cadena2" "cadena3" ... "cadenaN")

Por ejemplo:

#!/bin/bash
names=("Ana" "Juan" "María" "Carlos")

Para agregar elementos a la lista, puedes utilizar el siguiente formato:

lista=("${lista[@]}" "nuevo-elemento")

Por ejemplo:

#!/bin/bash
names=("Ana" "Juan" "María" "Carlos")
names=("${names[@]}" "Pedro")

Ejemplos de código

Aquí te presentamos algunos ejemplos de código que usan el bucle for para recorrer una lista de strings en Bash:

  • Imprimir todos los archivos en una carpeta:
  • #!/bin/bash
    for file in /ruta/a/la/carpeta/*
    do
    echo $file
    done

  • Borrar todos los archivos en una carpeta:
  • #!/bin/bash
    files=(/ruta/a/la/carpeta/*)

    for file in "${files[@]}"
    do
    rm $file
    done

  • Ejecutar un comando para cada archivo en una lista:
  • #!/bin/bash
    files=("file1.txt" "file2.txt" "file3.txt")

    for file in "${files[@]}"
    do
    cat $file > output.txt
    done

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir