Rangos en Bash
-
Utilice el bucle
forpara obtener rango en Bash -
Utilice el bucle
forcon tres expresiones para obtener rango en Bash -
Utilice el bucle
whilepara obtener rango en Bash -
Utilice
evalpara obtener rango en Bash -
Utilice
seqpara obtener rango en Bash
Este tutorial demuestra la iteración a través de un rango de enteros en bash con el bucle for y el bucle while.
Utilice el bucle for para obtener rango en Bash
El siguiente script bash usa un bucle for con expansión de llaves para recorrer un rango de números. Los números dentro de las llaves se incrementan secuencialmente.
#!/bin/bash
printf "Print Numbers from 0 to 5\n"
for x in {0..5}
do
printf "number:$x\n"
done
Producción :
Print Numbers from 0 to 5
number:0
number:1
number:2
number:3
number:4
number:5
Utilice el bucle for con tres expresiones para obtener rango en Bash
El script utiliza un bucle for con una expresión de tres como en el lenguaje C. Aquí, expr1 es la inicialización, expr2 es la condición y expr3 es el incremento.
En nuestro caso, x se inicializa a 0, x se prueba si es menor o igual a 5 y por último, x se incrementa en 1.
#!/bin/bash
max=5
printf "Print Numbers from 0 to $max\n"
for ((x=0;x<=max;x++)); do
printf "number: $x\n"
done
Producción :
Print Numbers from 0 to 5
number: 0
number: 1
number: 2
number: 3
number: 4
number: 5
Utilice el bucle while para obtener rango en Bash
Utiliza un bucle while con un operador de comparación binario, -le, que se utiliza para la comparación de valores aritméticos.
En nuestro caso, el bucle while se ejecuta siempre que x sea menor o igual que la variable $max.
#!/bin/bash
x=0
max=5
printf "Print numbers from $x to $max\n"
while [ $x -le $max ]; do
printf "number: $x\n"
x=$(($x+1))
done
Producción :
Print numbers from 0 to 5
number: 0
number: 1
number: 2
number: 3
number: 4
number: 5
Utilice eval para obtener rango en Bash
eval es un comando bash usado para ejecutar argumentos como comandos de shell. En el siguiente script, las llaves generan números desde 0 a$max en incrementos de 1, el bucle for itera sobre estos números y el comando printf los muestra.
#!/bin/bash
max=4
printf "Print Numbers from 0 to $max\n"
for x in `eval echo {0..$max}`
do
printf "number: $x\n"
done
Producción :
Print Numbers from 0 to 4
number: 0
number: 1
number: 2
number: 3
number: 4
Utilice seq para obtener rango en Bash
seq es un comando de bash que se utiliza para generar números desde el inicio hasta el final en pasos de incremento.
En nuestro caso, seq genera números de x a $max en incrementos de 1. El bucle for itera sobre estos números, y el comando printf se usa para mostrarlos.
x=0
max=5
printf "Print numbers from $x to $max\n"
for x in $(seq $x $max)
do
printf "number: $x\n"
done
Producción :
Print numbers from 0 to 5
number: 0
number: 1
number: 2
number: 3
number: 4
number: 5
