Página siguiente Página anterior Índice general

7. Los bucles for, while y until

En esta sección se encontrará con los bucles for, while y until.

El bucle for es distinto a los de otros lenguajes de programación. Básicamente, le permite iterar sobre una serie de `palabras' contenidas dentro de una cadena.

El bucle while ejecuta un trozo de códico si la expresión de control es verdadera, y sólo se para cuando es falsa (o se encuentra una interrupción explícita dentro del código en ejecución).

El bucle until es casi idéntico al bucle loop, excepto en que el código se ejecuta mientras la expresión de control se evalúe como falsa.

Si sospecha que while y until son demasiado parecidos, está en lo cierto.

7.1 Por ejemplo

        #!/bin/bash
        for i in $( ls ); do
            echo item: $i
        done
        

En la segunda línea declaramos i como la variable que recibirá los diferentes valores contenidos en $( ls ).

La tercera línea podría ser más larga o podría haber más líneas antes del done (4).

`done' (4) indica que el código que ha utilizado el valor de $i ha acabado e $i puede tomar el nuevo valor.

Este script no tiene mucho sentido, pero una manera más útil de usar el bucle for sería hacer que concordasen sólo ciertos ficheros en el ejemplo anterior.

7.2 for tipo-C

Fiesh sugirió añadir esta forma de bucle. Es un bucle for más parecido al for de C/perl...

        #!/bin/bash
        for i in `seq 1 10`;
        do
                echo $i
        done    
        

7.3 Ejemplo de while

         #!/bin/bash 
         CONTADOR=0
         while [  $CONTADOR -lt 10 ]; do
             echo El contador es $CONTADOR
             let CONTADOR=CONTADOR+1 
         done
         

Este script 'emula' la conocida (C, Pascal, perl, etc) estructura `for'.

7.4 Ejemplo de until

         #!/bin/bash 
         CONTADOR=20
         until [  $CONTADOR -lt 10 ]; do
             echo CONTADOR $CONTADOR
             let CONTADOR-=1
         done
         

Página siguiente Página anterior Índice general

Hosting by: hurra.com
Generated: 2007-01-26 18:00:33