Guía para principiantes de Bash while Loops


Escribir código de calidad en sí es un truco y cuando debe ejecutar varias veces específicas, no desea escribir una declaración varias veces.

Entonces, ¿cómo resuelve este problema? Utilice bucles en la programación, que le permiten ejecutar una tarea específica según la condición dada.

Existen varios tipos de bucles y uno de ellos es los bucles while. Así, en este tutorial, le explicaré cómo puede utilizar el bucle while a bash con un conjunto de ejemplos prácticos.

Índice
  1. ¿Cómo funciona el bucle while a bash?
  2. Ejemplos de un bucle while a bash
    1. 1. Imprime n números
    2. 2. Uso de la instrucción break
    3. 3. Utilizando la instrucción continue
    4. 4. Lee el archivo línea por línea
  3. Conclusión

¿Cómo funciona el bucle while a bash?

Para entender el funcionamiento del bucle while, primero debe entenderse la sintaxis. Así pues, aquí tiene una sintaxis básica del bucle while:

Serie Roborock S8 Max: las 7 principales funciones que debería conocerSerie Roborock S8 Max: las 7 principales funciones que debería conocer
while [ condition ]
do
   command1
   command2
   ...
   commandN
done

Ahora, desglosamos cada línea para entender cómo funciona:

  • while: la palabra clave que inicia el bucle while.
  • [condition]: es la parte más importante del bucle. La declaración de condición. La condición se relaciona principalmente con una variable definida y el bucle sólo se ejecuta si la condición es cierta.
  • do: la palabra clave que inicia el cuerpo del bucle.
  • command1, command2,..., comandN: n número de órdenes que se ejecutarán hasta que la condición sea cierta.
  • done: marca el final del cuerpo del bucle.

¿Suena complicado? Permítanme que se lo simplificie.

Supongamos que desea imprimir algo 5 veces, así que lo que puede hacer es definir una variable e inicializar su valor a 1 (supongamos que la variable es a).

Así que lo que puede hacer es crear una condición de que el bucle se iterará hasta el valor de la a La variable es 5 y utiliza un contador dentro del cuerpo del bucle que aumentará el valor de a en cada iteración.

Así es cómo funcionará:

Serie Roborock S8 Max: las 7 principales funciones que debería conocerSerie Roborock S8 Max: las 7 principales funciones que debería conocer

La condición es: El valor de a es menor o igual a 5. Inicialmente, el valor de a se definió como 1, por lo que la condición es cierta y el bucle imprimirá la instrucción. Justo después de esto, hay un contador que aumentará el valor de a por 1, por lo que ahora el valor de a=2.

De nuevo, comprobará la condición, y todavía será cierta, ya que el valor actual de a (que es 2) todavía es menor o igual a 5, por lo que el bucle se iterará, se ejecutará la instrucción de impresión y el contador. aumentará el valor de a en 1 resultando el valor de la a acontece 3.

El bucle funcionará hasta que siga ejecutando la instrucción de impresión hasta que el valor de a llegue a 5. Después de ejecutar la instrucción de impresión por quinta vez, el contador aumentará el valor de aa 6.

Así, cuando se compruebe la condición para iniciar el bucle, se comprobará, será falso y el bucle se terminará.

Ahora, echemos un vistazo a algunos ejemplos del bucle while a bash.

El IA de Google predice el caos meteorológico con mayor precisión que nuncaEl IA de Google predice el caos meteorológico con mayor precisión que nunca

Véase también: 8 PowerToys imprescindibles para aumentar su productividad de Windows

Ejemplos de un bucle while a bash

En esta sección, compartiré 4 ejemplos sencillos que muestran lo fácil que es utilizar el bucle while a bash. Empezará por las más fáciles y aumentará la complejidad poco a poco (sólo un poco, nada que te asuste).

1. Imprime n números

De lejos, ésta es la manera más fácil de entender el funcionamiento de un bucle while a bash. Primero, dejadme compartir el código y después llegaré a la parte de explicación:

#!/bin/bash

number=1

while [ $number -le 10 ]
do
  echo $number
  ((number++))
done

El código anterior imprimirá números del 1 al 10. Echemos un vistazo a cómo se hace.

Aquí,

  • !/bin/bash: es un shebang que indica al sistema que utilice el shell bash para ejecutar el script.
  • number=1: es una variable llamada a númeroy se le asignó 1 como valor inicial.
  • [ $number -le 10 ]: es una condición para comprobar si el valor de la number variable es menor o igual a 10.
  • echo $number: imprimirá el valor de la number variable.
  • ((number++)): aumentará el valor de la number variable por una en cada iteración.

Cuando ejecute el script anterior, puede esperar la siguiente salida:

bucle while para imprimir el número del 1 al 10 en bashbucle while para imprimir el número del 1 al 10 en bash

2. Uso de la instrucción break

La instrucción break se utiliza para salir en breve del bucle while cuando coincide una determinada condición. Aquí está un bucle while sencillo con una declaración break:

#!/bin/bash

number=1

while [ $number -le 10 ]
do
  echo "Number: $number"

  if [ $number -eq 7 ]; then
    echo "Reached number 7. Exiting loop..."
    break
  fi

  ((number++))
done

echo "Loop exited."

En el script anterior, la instrucción break toma un salida anticipada una vez utiliza la instrucción echo the 7a vez. Echemos un vistazo a cómo funciona.

  • number=1: aquí, la variable number se inicializa a 1.
  • while [ $number -le 10 ]: el bucle while ejecutará el cuerpo del bucle hasta el valor de la number variable es menor o igual a 10.
  • echo "Number: $number": una instrucción de impresión para imprimir el valor de la number variable.
  • if [ $number -eq 7 ]; then: si el valor de la number variable es igual a 7 y, a continuación, ejecute la siguiente instrucción.
  • echo "Reached number 7. Exiting loop…": si el valor de la number variable es igual a 7, entonces imprimirá "Se llegó al número 7. Se está saliendo del bucle...".
  • break: Una vez después de imprimir el mensaje que se encuentra dentro de la instrucción if, romperá el bucle while.
  • fi: se utiliza para terminar el bloque if.
  • ((number++)): se utiliza para aumentar el valor de la number variable en 1 en cada interacción.
  • done: declaración de cierre del bucle while.
  • echo "Loop exited": Imprimir "Loop exited" al final de la salida.

¿Parece demasiado complejo? Déjame contar.

El bucle tenía la condición de que se iteraría hasta el valor del number La variable es menor o igual a 10, por lo que técnicamente debería ejecutar el cuerpo del bucle 10 veces.

Pero espera ✋.

Hay una instrucción if en el cuerpo del bucle para comprobar si el valor de number variable es 7 o no. Una vez que el valor de la variable aumenta a 7, la condición de la instrucción if cambia a verdadera y ejecuta la break declaración para salir del bucle.

Aquí tiene la salida del script:

Se utiliza la instrucción break en el bucle while bashSe utiliza la instrucción break en el bucle while bash

3. Utilizando la instrucción continue

La instrucción continue se utiliza para saltar la iteración actual y pasar a la siguiente iteración. En los scripts bash, a menudo se combina con el bucle while para saltar determinadas iteraciones.

Aquí hay un bucle while sencillo que muestra cómo utilizar la instrucción continúe para saltar una iteración específica:

#!/bin/bash

number=1

while [ $number -le 10 ]
do
  if [ $number -eq 5 ]; then
    echo "Skipping number 5..."
    ((number++))
    continue
  fi

  echo "Number: $number"
  ((number++))
done

echo "Loop exited."

El bucle while anterior saltará la 5a iteración e imprimirá el mensaje "Se omite el número 5..." en lugar de imprimir el valor del number variable. Así que echemos un vistazo a cómo funciona:

  • number=1: el number variable inicializada en 1.
  • while [ $number -le 10 ]: un bucle while que iterará el cuerpo del bucle hasta el valor del number variable será menor o igual a 10.
  • if [ $number -eq 5 ]: es la instrucción if que verifica el valor de la variable y una vez cumpla la condición, ejecutará el código dentro de la instrucción if.
  • echo "Skipping number 5…": una declaración de impresión que sugiere que la instrucción if está a punto de saltarse la 5ª iteración y, en su lugar, imprimirá "Omitiendo el número 5...".
  • ((number++)): aumenta el contador dentro de la instrucción yf que aumentará el valor de la variable (actualmente 5) a 6.
  • continue: pasa a la siguiente iteración.
  • echo "Number: $number": imprime el valor de la number variable.
  • ((number++)): aumenta el number variable por 1.
  • echo "Loop exited.": una declaración de impresión que sugiere el final del bucle.

Si observa el bucle, he utilizado el incremento (número++) dos veces y aquí es donde pasa la verdadera magia.

Hay un bucle while que se supone que imprime el valor de la number variable 10 veces. Pero quería saltarme la 5a iteración, así que lo que hice es utilizar la declaración if antes de la declaración echo del bucle while que se encarga de imprimir el valor de una variable.

Lo que ocurre es que el bucle while comienza con la instrucción if y después hay una parte de eco. Esto significa que la variable se pasa primero a través de la instrucción if, por lo que cuando la condición de la instrucción if es cierta, el valor se cambia antes de pasar a la parte de eco (el segundo eco del código) del bucle while.

Cuando el valor de la variable aumenta a 5, primero se comprobará con la declaración if y dado que el valor es 5, la condición para la declaración if es cierta y se incrementará a 6. Ahora, el valor de la number La variable es 6 y pasa a la segunda instrucción de eco.

Así es como omita una o más iteraciones con la instrucción continúe. Si tuviera que ejecutar el script mostrado, aquí tiene la salida esperada:

Utilice la instrucción continue en el bucle while bashUtilice la instrucción continue en el bucle while bash

4. Lee el archivo línea por línea

Puede que éste no sea el ejemplo más práctico de lectura de archivos, pero sin duda una manera fantástica de entender el funcionamiento del bucle while, ya que implica el uso del comando read.

Primero, déjeme compartir el código:

#!/bin/bash

file="my_file.txt"

while read -r line; do
  echo "$line" 
done < "$file"

El bucle anterior leerá el contenido del archivo my_file.txt archivo línea por línea. Así es cómo funciona:

  • file="my_file.txt": el nombre del archivo my_file.txt está asignado al file variable.
  • while read -r line: aquí, el bucle while se iterará hasta que el comando de lectura lee el archivo línea por línea y almacena todas las líneas en la line variable (una a la vez).
    El -r La bandera se utiliza para evitar barras invertidas (\) ser interpretados como caracteres de escape dentro de la línea.
  • echo "$line": imprime cada línea almacenada dentro del line variable.
  • done < "$file": redirige los datos del archivo almacenados dentro del archivo file variable continuamente.

En términos sencillos, almacena líneas una por una dentro del line variable y los imprime uno por uno hasta que no quede nada por leer con el orden de lectura y el bucle termina allí.

Aquí tiene la salida del script anterior (también he incluido la salida del mandato cat con el archivo para verificar la salida del propio script):

Conclusión

En esta guía, he explicado cómo puede utilizar el bucle while en el shell bash incluida la sintaxis, el funcionamiento del bucle while y 4 ejemplos prácticos con diferentes declaraciones.

He intentado dar todos los detalles posibles para que pueda tener una idea clara de cómo puede utilizar el bucle while en la bash.

No dude en dejarnos un comentario en nuestras redes sociales aquí o aquí para cualquier consulta o sugerencia.





Source link

Entradas Relacionadas

Subir

Usamos cookies para asegurar que te brindamos la mejor experiencia en nuestra web. Si continúas usando este sitio, asumiremos que estás de acuerdo con ello. Más información