Saltar al contenido

Unix / Linux: tipos de bucle de shell

septiembre 23, 2021

En este capítulo, discutiremos los bucles de shell en Unix. Un bucle es una poderosa herramienta de programación que le permite ejecutar un conjunto de comandos repetidamente. En este capítulo, examinaremos los siguientes tipos de bucles disponibles para los programadores de shell:

Utilizará diferentes bucles según la situación. Por ejemplo, el tiempo loop ejecuta los comandos dados hasta que la condición dada permanece verdadera; los Hasta que El bucle se ejecuta hasta que se cumple una condición determinada.

Una vez que tenga una buena práctica de programación, obtendrá la experiencia y, por lo tanto, comenzará a usar el bucle adecuado según la situación. Aquí, tiempo y por los bucles están disponibles en la mayoría de los otros lenguajes de programación como C, C ++ y PERLetc.

Bucles de anidamiento

Todos los bucles admiten el concepto de anidamiento, lo que significa que puede colocar un bucle dentro de otro similar o bucles diferentes. Este anidamiento puede aumentar hasta un número ilimitado de veces según sus necesidades.

Aquí hay un ejemplo de anidación. tiempo círculo. Los otros bucles se pueden anidar según los requisitos de programación de una manera similar:

Anidando bucles while

Es posible utilizar un bucle while como parte del cuerpo de otro bucle while.

Sintaxis

while command1 ; # this is loop1, the outer loop
do
   Statement(s) to be executed if command1 is true

   while command2 ; # this is loop2, the inner loop
   do
      Statement(s) to be executed if command2 is true
   done

   Statement(s) to be executed if command1 is true
done

Ejemplo

A continuación, se muestra un ejemplo sencillo de anidación de bucles. Agreguemos otro bucle de cuenta regresiva dentro del bucle que solía contar hasta nueve:

#!/bin/sh

a=0
while [ "$a" -lt 10 ]    # this is loop1
do
   b="$a"
   while [ "$b" -ge 0 ]  # this is loop2
   do
      echo -n "$b "
      b=`expr $b - 1`
   done
   echo
   a=`expr $a + 1`
done

Esto producirá el siguiente resultado. Es importante notar cómo echo -n trabaja aquí. Aquí -norte La opción permite que echo evite imprimir un carácter de nueva línea.

0
1 0
2 1 0
3 2 1 0
4 3 2 1 0
5 4 3 2 1 0
6 5 4 3 2 1 0
7 6 5 4 3 2 1 0
8 7 6 5 4 3 2 1 0
9 8 7 6 5 4 3 2 1 0
close