Skip to main content

Linux Shell Script Ejemplos de BASH 'for' Loop

Lagu Anak Islami ~ Belajar Mengaji (A I U) # Dedy Pitak & Nur - Meisya (Abril 2025)

Lagu Anak Islami ~ Belajar Mengaji (A I U) # Dedy Pitak & Nur - Meisya (Abril 2025)
Anonim

BASH (que significa Bourne Again Shell) es un lenguaje de secuencias de comandos 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 agregar los comandos a un archivo de texto para producir un script de shell.

Lo mejor de escribir scripts de shell es que puede ejecutarlos una y otra vez. Por ejemplo, imagine que necesita agregar un usuario a un sistema, configurar sus permisos y administrar su entorno de inicio. 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 los 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 usar los parámetros de importación para obtener información del teclado y almacenarlos como variables. Luego, 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 formas de repetir el código (también conocidas como bucles). En esta guía, se le mostrará cómo escribir un bucle "for".

UNA para El bucle 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 formas de usar el bucle for dentro de un script BASH.

Antes de empezar

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

  1. Entrar scripts mkdir (Aprende más sobre mkdir aquí).

  2. Entrar guiones de cd (esto cambia el directorio a guiones ).

  3. Entrar nano examplen.sh (dónde norte es el ejemplo en el que estás trabajando).

  4. Ingrese el guión.

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

  6. correr bash examplen.sh (de nuevo, con norte siendo el ejemplo con el que estás trabajando).

Cómo recorrer una lista

#! / bin / bashpara el número en 1 2 3 4 5doecho $ numberdoneexit 0

La forma BASH de usar bucles "for" es algo diferente a la forma en que la mayoría de los lenguajes de programación y secuencias de comandos manejan los bucles "for". Vamos a romper el guión hacia abajo.

En un bucle BASH "para" todo, las declaraciones entre hacer y hecho 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 (es decir, 1 2 3 4 5).

Cada vez que el bucle se repite, el siguiente valor de la lista se inserta en la variable especificada después de la palabra "para" . En el bucle anterior, la variable se llama número .

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 desea procesar una lista más grande (por ejemplo, de 1 a 500), 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 inicial y final:

#! / bin / bashpara el número en {1..10} doecho "$ number" doneexit 0

Las reglas son básicamente las mismas. Los valores tras la palabra " en" cree la lista para iterar y cada valor de la lista se coloca en la variable (es decir, el número), y cada vez que el bucle se repite, las declaraciones entre hacer y hecho se realizan

La principal diferencia es la forma en que se forma la lista. Los corchetes {} básicamente denotan 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, recorre cada número entre 1 y 10 y envía el número a la pantalla de la siguiente manera:

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

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

para el número en 1 2 3 4 5 6 7 8 9 10

Cómo saltar números en un rango

El ejemplo anterior mostró 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.

Imagina que quieres hacer un bucle entre 0 y 100, pero solo mostrar cada décimo número. La siguiente secuencia de comandos muestra cómo hacer eso:

#! / bin / bashpara el número en {0..100..10} doecho "$ number" doneexit 0

Las reglas son básicamente las mismas. Hay una lista, una variable y un conjunto de instrucciones que deben realizarse entre hacer y hecho . 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 en la lista que omitirá.

El ejemplo anterior, por lo tanto, muestra el siguiente resultado:

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

Un bucle más tradicional en busca de

La forma BASH de escribir para bucles es ligeramente extraña en comparación con otros lenguajes de programación.

Sin embargo, puede escribir un bucle for en un estilo similar al lenguaje de programación C, como este:

!

El bucle comienza estableciendo el número de variable en 1 (número = 1 ). El bucle se mantendrá iterando mientras el valor de un número sea menor que 100 ( número <100 ). El valor de número cambia agregándole 1 después de cada iteración ( numero ++ ).

Todo entre las llaves 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, entonces el número es divisible entre 5 y luego 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 de paso de la iteración, puede modificar la sección del número ++ para que sea número = número + 2 , número = número + 5 o número = número + 10 etc.

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

Un ejemplo práctico

Porque los bucles pueden 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 / bashpara archivo en ./*.mp3dompg -w ./wavs/"${file}".wav "$ file" hecho

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

los mpg comando convierte el archivo MP3 en WAV. Sin embargo, es probable que primero debas instalar esto usando tu administrador de paquetes.