¿Qué es un bucle y cómo se implementa utilizando BASH?

¿Qué es un bucle y cómo se implementa utilizando BASH?

¿Qué es un bucle y cómo se implementa utilizando BASH?

VALORACIÓN DEL ARTÍCULO:
5/5


BASH (que significa Bourne Again Shell) es un lenguaje de programación utilizado por la mayoría de los sistemas operativos basados en Linux y UNIX.

Puede ejecutar comandos BASH dentro de una ventana de terminal uno tras otro o puede añadir los comandos a un archivo de texto para producir un script shell.

Lo bueno de escribir scripts de shell es que se pueden ejecutar una y otra vez. Por ejemplo, imagine que necesita añadir un usuario a un sistema, establecer sus permisos y gestionar su entorno inicial. Puede escribir los comandos en un pedazo de papel y ejecutarlos a medida que agrega nuevos usuarios o puede escribir un solo script y simplemente pasar parámetros a ese script.

Los lenguajes de script como BASH tienen construcciones de programación similares a las de otros lenguajes. Por ejemplo, puede utilizar parámetros para import para obtener datos del teclado y almacenarlos como variables. A continuación, puede hacer que el script realice una determinada acción en función del valor de los parámetros de entrada.

Una parte clave de cualquier lenguaje de programación y scripting es la capacidad de ejecutar el mismo código una y otra vez.

Hay varias maneras de repetir el código (también conocidas como bucles). En esta guía, se le mostrará cómo escribir un bucle «para».

Un para loop repite una cierta sección del código una y otra vez. Son útiles para que una serie de comandos puedan seguir ejecutándose hasta que se cumpla una condición particular, después de lo cual se detendrán.

En esta guía, se le mostrarán cinco maneras de usar el bucle for dentro de un script de BASH.

Índice de contenidos

Antes de empezar

Antes de comenzar con los ejemplos de bucle, debe abrir una ventana de terminal y seguir estos pasos:

  1. Introduzca scripts mkdir (aprenda más sobre mkdir aquí).

  2. Introduzca scripts cd (esto cambia el directorio a scripts).

  3. Introduzca nano examplen.sh (donde n es el ejemplo en el que está trabajando).

  4. Introduzca el script.

  5. Pulse CTRL+O para guardar y CTRL+X para salir.

  6. Ejecute bash examplen.sh (de nuevo, con n como ejemplo).

Cómo hacer un bucle a través de una lista

La forma en que BASH utiliza los bucles «for» es algo diferente a la forma en que la mayoría de los otros lenguajes de programación y scripting manejan los bucles «for». Vamos a descifrar el guión.

En un bucle «for» de BASH, las sentencias entre do y done se realizan una vez para cada elemento de la lista.

En el ejemplo anterior, la lista es todo lo que viene después de la palabra en (i.e. 1 2 3 4 5).

Cada vez que el bucle itera, el siguiente valor de la lista se inserta en la variable especificada después de la palabra «for». En el bucle anterior, la variable se llama number.

La declaración de eco se utiliza para mostrar información en la pantalla.

Por lo tanto, este ejemplo toma los números del 1 al 5 y los envía uno por uno a la pantalla:

  • 1
  • 2
  • 3
  • 4
  • 5

Cómo hacer un bucle entre un punto de inicio y un punto final

El problema con el ejemplo anterior es que si quiere procesar una lista más grande (digamos de 1 a 500), le tomaría años escribir todos los números en primer lugar.

Esto nos lleva al segundo ejemplo que muestra cómo especificar un punto de inicio y un punto final:

/bin/bashfor number in {1..10}doecho «$number «doneexit 0

Las reglas son básicamente las mismas. Los valores después de la palabra » en» formar la lista para iterar y cada valor de la lista se coloca en la variable (es decir, número), y cada vez que el bucle itera, se ejecutan las sentencias entre do y done .

La principal diferencia es la forma en que se forma la lista. Los corchetes rizados {} básicamente denota un rango, y el rango, en este caso, es de 1 a 10 (los dos puntos separan el inicio y el final de un rango).

Este ejemplo, por lo tanto, se ejecuta a través de cada número entre 1 y 10 y envía el número a la pantalla como se indica a continuación:

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

El mismo bucle podría haberse escrito así, con una sintaxis idéntica a la del primer ejemplo:

Cómo omitir números en un rango

El ejemplo anterior mostraba cómo hacer un bucle entre un punto de inicio y un punto final, por lo que ahora veremos cómo omitir números en el rango.

Imagínate que quieres hacer un bucle entre 0 y 100, pero sólo mostrarás uno de cada diez números. El siguiente script muestra cómo hacerlo:

#!/bin/bashfor number in {0..100..10}doecho "$number "doneexit 0

Las reglas son básicamente las mismas. Hay una lista, una variable y un conjunto de sentencias a realizar entre do y done. La lista esta vez se ve así: {0..100..10}.

El primer número es 0 y el número final es 100. El tercer número (10) es el número de elementos de la lista que omitirá.

Por lo tanto, el ejemplo anterior muestra el siguiente mensaje:

  • 0
  • 10
  • 20
  • 30
  • 40
  • 50
  • 60
  • 70
  • 80
  • 90
  • 100

Un bucle de búsqueda más tradicional

La forma de escribir para bucles BASH es un poco extraña si la comparamos con otros lenguajes de programación.

Sin embargo, puede escribir un bucle para bucle en un estilo similar al del lenguaje de programación C, así:

El bucle comienza configurando el número de variable a 1 ( número = 1 ). El bucle seguirá iterando mientras que el valor de un número es inferior a 100 ( número < 100 ). El valor del número cambia añadiéndole 1 después de cada iteración ( número++ ).

Todo lo que hay entre las abrazaderas rizadas se realiza a través de cada iteración del bucle.

El bit entre las llaves comprueba el valor de un número , lo divide por 5, y compara el resto con 0. Si el resto es 0, el número es divisible por 5 y se muestra en la pantalla.

Por ejemplo:

  • 5 es divisible por 5
  • 10 es divisible por 5
  • 15 es divisible por 5

Si desea cambiar el tamaño del paso de la iteración, puede modificar la sección number+++ para que sea number=number+2 , , number=number+5 , o number=number+10 , etc.

Esto puede reducirse a número+=2 o número+=5 .

Un ejemplo práctico

Para los bucles puede hacer más que iterar listas de números. Puede utilizar la salida de otros comandos como la lista.

El siguiente ejemplo muestra cómo convertir archivos de audio de MP3 a WAV:

#!/bin/bash
para el archivo en./*.mp3dompg -w./wavs/"${file}".wav "$file "done

La lista en este ejemplo es cada archivo con la extensión.MP3 en la carpeta actual y la variable es file.

El comando mpg convierte el archivo MP3 en WAV. Sin embargo, es probable que tenga que instalarlo usando su gestor de paquetes primero.

TAMBIÉN TE INTERESA

la-IA-estará-detrás-de-todas-nuestras-compras-online

En poco tiempo, la IA estará detrás de todas nuestras compras online…

No sería descabellado pensar que la IA estuviera detrás de todas nuestras compras online en no mucho tiempo. El sector se mueve en estos momentos para proponer soluciones a los ecommerce y el cliente final termina por dejarse guiar por un sistema que va más allá de unas simples recomendaciones. Y es que las herramientas

precio-OPPO-A18

OPPO A18, no se puede pedir más a un móvil por ese precio…

OPPO acaba de lanzar al mercado el nuevo OPPO A18, un smartphone que podrá ser nuestro por una cifra irrisoria en el sector: 139 euros. No hay truco, ese el coste de un teléfono que tiene muchos argumentos para seducir a cualquiera. Evidentemente, no es un gama premium, pero si un gama media de lo

nube-personal-BeeStation

BeeStation o cómo crear una nube personal en tu casa en un periquete

La mayoría de los usuarios de dispositivos móviles utilizan uno más servicios de cloud disponibles en el mercado para el almacenamiento de los archivos. Con la llegada de la nube, el almacenamiento de los móviles y de los equipos informáticos ha pasado a un segundo plano, de manera que ya no es tan importante cuantos

anillo-inteligente-Rikki

Anillo inteligente: dos nuevas propuestas (una ya a la venta y otra en espera)

El anillo inteligente se va haciendo, poco a poco, un hueco en el mercado. Hasta ahora son pocas las referencias que existen, aunque existen algunas destacadas como el Anillo Circular, del que ya hemos hablado en este medio. En el horizonte, empiezan a surgir nuevas propuestas, llamando la atención del desarrollo que prepara Samsung y

presoterapia

La tecnología acerca la presoterapia a los domicilios con nuevos dispositivos

La presoterapia es una técnica terapéutica utilizada en el campo de la medicina estética y la fisioterapia para mejorar la circulación sanguínea y linfática, reducir la retención de líquidos, eliminar toxinas y favorecer la eliminación de la celulitis. Consiste en la aplicación de presión controlada sobre diferentes partes del cuerpo mediante el uso de dispositivos

Apple Vision Pro

Vision Pro: La revolución tecnológica que está conquistando España

Apple Vision Pro es la última revolución en la computación espacial. Integrando contenido digital y el mundo físico, ofrece experiencias de entretenimiento impactantes y captura recuerdos con su primera cámara tridimensional. A pesar de algunas debilidades, ha generado gran expectación en redes sociales y se ha convertido en un fenómeno social único. Descubre sus características,