Declaraciones de bucle en Shell Scripting: hay un total de 3 declaraciones de bucle que se pueden usar en la programación de bash
- mientras declaración
- para declaración
- hasta declaración
Para alterar el flujo de las declaraciones de bucle, se utilizan dos comandos que son,
- descanso
- Seguir
Sus descripciones y sintaxis son las siguientes:
- instrucción while
Aquí se evalúa el comando y, en función del resultado, se ejecutará el bucle; si el comando aumenta a falso, el bucle terminará
Sintaxis
- sentencia
for El bucle for opera en listas de elementos. Repite un conjunto de comandos para cada elemento de una lista.
Aquí var es el nombre de una variable y palabra1 a palabraN son secuencias de caracteres separados por espacios (palabras). Cada vez que se ejecuta el ciclo for, el valor de la variable var se establece en la siguiente palabra en la lista de palabras, palabra1 a palabraN.
Sintaxis
- sentencia till
El bucle till se ejecuta tantas veces como la condición/comando se evalúe como falso. El ciclo termina cuando la condición/comando se vuelve verdadero.
Sintaxis
Programas
de ejemplo Ejemplo 1:
Implementación de bucle for con instrucción break
php
#Start of for loop for a in 1 2 3 4 5 6 7 8 9 10 do # if a is equal to 5 break the loop if [ $a == 5 ] then break fi # Print the value echo "Iteration no $a" done
Producción
$bash -f main.sh Iteration no 1 Iteration no 2 Iteration no 3 Iteration no 4
Ejemplo 2:
Implementación de bucle for con declaración de continuación
php
for a in 1 2 3 4 5 6 7 8 9 10 do # if a = 5 then continue the loop and # don't move to line 8 if [ $a == 5 ] then continue fi echo "Iteration no $a" done
Producción
$bash -f main.sh Iteration no 1 Iteration no 2 Iteration no 3 Iteration no 4 Iteration no 6 Iteration no 7 Iteration no 8 Iteration no 9 Iteration no 10
Ejemplo 3:
Implementando el ciclo while
php
a=0 # -lt is less than operator #Iterate the loop until a less than 10 while [ $a -lt 10 ] do # Print the values echo $a # increment the value a=`expr $a + 1` done
Producción:
$bash -f main.sh 0 1 2 3 4 5 6 7 8 9
Ejemplo 4:
Implementando hasta el ciclo
php
a=0 # -gt is greater than operator #Iterate the loop until a is greater than 10 until [ $a -gt 10 ] do # Print the values echo $a # increment the value a=`expr $a + 1` done
Producción:
$bash -f main.sh 0 1 2 3 4 5 6 7 8 9 10
Nota: Shell scripting es un lenguaje que distingue entre mayúsculas y minúsculas, lo que significa que se debe seguir la sintaxis adecuada al escribir los scripts.
Ejemplo 5:
PHP
COLORS="red green blue" # the for loop continues until it reads all the values from the COLORS for COLOR in $COLORS do echo "COLOR: $COLOR" done
Producción:
$bash -f main.sh COLOR: red COLOR: green COLOR: blue
Ejemplo 6:
Incluso podemos acceder a los parámetros posicionales usando bucles
Ejecutamos un script de shell llamado sample.sh usando tres parámetros
Ejecución de secuencias de comandos: main.sh muestra1 muestra2 muestra3
Podemos acceder a los tres parámetros anteriores usando $@
PHP
echo "Executing script" # the script is executed using the below command # main.sh sample1 sample2 sample # where sample1, sample2 and sample3 are the positional arguments # here $@ contains all the positional arguments. for SAMPLE in $@ do echo "The given sample is: $SAMPLE" done
Producción:
$bash -f main.sh sample1 sample2 sample3 Executing script The given sample is sample1 The given sample is sample2 The given sample is sample3
Ejemplo 7: bucle infinito
PHP
while true do # Command to be executed # sleep 1 indicates it sleeps for 1 sec echo "Hi, I am infinity loop" sleep 1 done
Producción:
$bash -f main.sh Hi, I am infinity loop Hi, I am infinity loop Hi, I am infinity loop . . . . It continues
Ejemplo 8: Comprobación de la entrada del usuario
PHP
CORRECT=n while [ "$CORRECT" == "n" ] do # loop discontinues when you enter y i.e.e, when your name is correct # -p stands for prompt asking for the input read -p "Enter your name:" NAME read -p "Is ${NAME} correct? " CORRECT done
Producción:
$bash -f main.sh Enter your name:Ironman Is Ironman correct? n Enter your name:Spiderman Is Spiderman correct? y
Publicación traducida automáticamente
Artículo escrito por bilal-hungund y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA