GNU/Linux >> Tutoriales Linux >  >> Linux

Consejo profesional:bucles For, While y Until

NIVEL:SYSADMIN / TIEMPO:1-2 min.

Aquí hay algunos ejemplos prácticos de referencia rápida para volver fácilmente si necesita usar bucles for, while y till en sus scripts de shell bash. Esto es perfecto para marcar y volver en una fecha posterior. Siempre olvido las sutiles diferencias de sintaxis que tiene bash, en comparación con otros lenguajes que uso, por ejemplo, C, PHP, Python, etc.

Antes de mostrarte los ejemplos, vale la pena saber cuándo usar cada tipo de bucle:

  • El para loop es un poco diferente de otros lenguajes de programación. Básicamente, te permite iterar sobre una serie de elementos dentro de una cadena.
  • El mientras loop realiza los elementos para ejecutar si la expresión de control es verdadera, y solo se detiene cuando es falsa (o se encuentra una ruptura explícita dentro del código ejecutado).
  • El hasta loop es casi idéntico al ciclo while, excepto que el código se ejecuta mientras la expresión de control se evalúa como falsa.

PARA Ejemplo 1:Repetición simple

Este tipo simple de bucle simplemente cuenta los valores proporcionados. En este caso, comienza en 1 y llega a 5. Es la repetición más básica.


#!/bin/bash
for i in 1 2 3 4 5
do
echo "Hello, I've done this loop $i times"
done

PARA el ejemplo 2:repetir una acción 50 veces:

La repetición se puede hacer comenzando en un valor e incrementando un contador. Esto es como lo harías en lenguajes de programación más convencionales. Lo único que debe recordar es usar (( para expresar un cálculo numérico.


#!/bin/bash
for ((i=1;i<=50;i++));
do
# your command, eg: echo $i
done

Este ejemplo hace justo lo que se supone que debe hacer. Pero hay formas más fáciles que no tienen que hacerte recordar el doble paréntesis ligeramente esotérico. Echa un vistazo a los siguientes ejemplos.

PARA el Ejemplo 3:Trabajar con rangos numéricos

Rangos

A veces, es posible que deba establecer un valor de paso (por ejemplo, contar de dos en dos o contar hacia atrás). Tenga en cuenta que bash versión 3.0+ tiene soporte incorporado para usar rangos ascendentes, pero no es realmente práctico para rangos de pasos:

#!/bin/bash
for i in {1..5}
do
echo "This is the $i iteration of this loop"
done

Paso a paso:

La mayoría de las distribuciones modernas de Linux ejecutan Bash v4.0+, que tiene soporte incorporado para configurar un valor de paso usando {START.. FIN.. INCREMENT} sintaxis:

#!/bin/bash
echo "Bash version ${BASH_VERSION}..."
for i in {0..10..2}
do
echo "This is the $i iteration of this loop"
done

Salida:

This is the 0 iteration of this loop
This is the 2 iteration of this loop
This is the 4 iteration of this loop
This is the 6 iteration of this loop
This is the 8 iteration of this loop
This is the 10 iteration of this loop

PARA el Ejemplo 4:trabajar con palabras, argumentos y la salida de comandos

Anteriormente hemos estado trabajando en rangos numéricos, pero el problema es que el bucle FOR evalúa argumentos en lugar de números, un número es simplemente un . Esto significa que puede indicarle que opere en cada iteración basada en línea. Por ejemplo, lo siguiente ejecutará el comando ls. Para cada elemento que vea, repetirá la línea. Tenga en cuenta que funciona en una cadena de palabras, no en una lista de líneas. Entonces, si usa ls -l, no proporcionará resultados útiles, tenga en cuenta también que si tiene nombres de archivo con espacios en ellos, los interpreta como palabras diferentes (argumentos que se suministran a para ).

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

MIENTRAS Ejemplo:

Mientras esencialmente emula el lenguaje de programación más clásico para la estructura de bucle:

#!/bin/bash
COUNTER=0
while [ $COUNTER -lt 10 ]; do
echo The counter is $COUNTER
let COUNTER=COUNTER+1
done

HASTA Ejemplo:


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


Linux
  1. Bash For Loop Guía y ejemplos

  2. Ejemplos de ciclos for y while de Bash

  3. ¿Atrapado en el bucle? Ejemplos de Awk While, Do While, For Loop, Break, Continue, Exit

  4. Usando y en Bash while loop

  5. Compatibilidad con Big Endian y Little Endian para ordenar bytes

Golpe para bucle

Golpear hasta bucle

Bash romper y continuar

Secuencias de comandos de Bash:ciclo while y till explicado con ejemplos

Bash For Loops con ejemplos

Bash Scripting Part2 – Bucles for y while con ejemplos