En esta ocasión veremos la sentencia while-do-done que es una estructura para hacer programas con ciclos o bucles, esta instrucción esta controlada por una sentencia lógica que controla el ciclo, es decir, mientras esa instrucción se cumpla, las instrucciones que estan dentro de la instrucción while se repetiran.

Esta instrucción comprobara la sentencia lógica antes de entrar al bloque de instrucciones que se repiten, si la sentencia lógica es falsa, jamás entrará en el ciclo, las intrucciones que se van a repetir deben de quedar encerradas entre do y done.

Cada vez que se ejecuta un paso por el bucle, es decir que se ejecutan las instrucciones dentro de él, se volverá a comprobar la sentencia lógica y si dara paso o no a otra nueva vuelta, dependiendo si es verdadera la comprobación o no, respectivamente.

 

La sintaxis del while-do-done es como sigue:

 

while [[ "condición lógica" ]]
do
     Instrucción 1
     Instrucción 2
     .
     .
     .
     Instrucción N

done

Vamos a ejemplificar la sentencia while con un programa, haremos el clásico programa de la tabla de multiplicar, donde al usuario se le solicita la tabla que quiere ver y posteriormente se le muestra.

Antes de hacer el programa vamos a mostrar los operadores relacionales válidos para los scripts de BASH:
-eq es igual
-ne no es igual
-lt menor que
-le menor que o igual
-gt mayor que
-ge mayor que o igual

Ahora sí, abramos un editor de texto y colquemos el siguiente código:




En la primer línea pedimos al usuario que tabla queremos ver, y en la línea siguiente se guarda el valor en la variable tabla.
En la tercer lína se inicializa una variable llamada “n” con el valor de 1, esta variable será comparada en la expresión lógica el while para controlar el ciclo.

Después viene el inicio del ciclo while, no olvidemos separar la palabra while de los corchetes, y que estos deben ser dobles tanto donde abre como donde cierrta, del mismo modo van separado los corchetes de la sentencia lógica.
En la sentencia lógica “$n -le 10” estamos controlando el ciclo diciendo que mientras el valor de $n sea menor o igual que 10, se seguirán ejecutando las intrucciones del ciclo. 

Las instrucciones que se van a repetir mientras la condición sea válida quedna encerradas entre do y done, y simplemente hacen la operación de ir multiplicando el valor de tabla que es fijo por el valor de n que en cada vuelta del ciclo se incremente en uno, el producto de esta operación se almacena en la variable resultado y posteriormente se hace la impresión en pantalla correspondiente. 
Es importante no omitir la línea donde se hace el incremento de la variable que controla el ciclo, en caso contrario tendríamos un ciclo infinito.

SaluLINUX

Powered By DT Author Box

Written by chris

Programación BASH ciclo While.

3 thoughts on “Programación BASH ciclo While.

  • Saludos prof…

    Que shido, esto me recuerda cuando lo vimos nosotros… ta shido, me latte, buenas practicas y ejemplos… algo aprendi de todo esto…

    como nadie comenta, seré el de los primeros a comentar..

    saludos y muy buen trabajo… que ande de lo mejor. saludos…

  • Que onda Sat, he tenido un poco descuidada esta categoria, tiene rato que no escribo, pero ya le voy a pedalear es que la verdad en esta semana q paso si hubo relax, porq como eran vacaciones, pero en esta semana si! gracias por entrar a leer los post y muchas gracias mas por comentar, buenas vibras y saluLINUX

    1. jeje si coiincido con usted… pues= yo he descuidado mucho algunas cosas, pero en esta semana mas o menos me puse al corriente, el detalle será cuando entremos de vacaciones… ufff vere si puedo seguir como hasta ahora… jejje, pues suerte en el proyecto, espero se aga un ppoco mas grande este rollo del blog. yo veré si ago algo para hacer que tenga mas visitantes… jejeje.. pero sshhh no diga nada jajjaj esperemos sirva… jaja…

      que ande de lo mejor y ya sabe cuando se puede pasar a leer y comentar siempre estaremos aquí… = buenas vibras y Sat-Linux jejej

Leave a Reply

Follow

Get every new post delivered to your Inbox

Join other followers:

%d bloggers like this: