GNU/Linux >> Tutoriales Linux >  >> Linux

Expresión de secuencia Bash (rango)

En este artículo, cubriremos los conceptos básicos de la expresión de secuencia en Bash.

La expresión de secuencia de Bash genera un rango de enteros o caracteres definiendo un punto inicial y final del rango. Generalmente se usa en combinación con for bucles.

Expresión de secuencia Bash #

La expresión de secuencia toma la siguiente forma:

{START..END[..INCREMENT]}
  • La expresión comienza con una llave de apertura y termina con una llave de cierre.
  • START y END pueden ser números enteros positivos o caracteres únicos.
  • El START y el END los valores son obligatorios y separados por dos puntos .. , sin espacio entre ellos.
  • El INCREMENT el valor es opcional. Si está presente, debe separarse del END valor con dos puntos .. , sin espacio entre ellos. Cuando se dan caracteres, la expresión se expande en orden lexicográfico.
  • La expresión se expande a cada número o carácter entre START y END , incluidos los valores proporcionados.
  • Una expresión formada incorrectamente no se modifica.

Aquí está la expresión en acción:

echo {0..3}

Cuando no hay INCREMENT se proporciona el incremento predeterminado es 1:

0 1 2 3

También puedes usar otros personajes. El siguiente ejemplo imprime el alfabeto:

echo {a..z}
a b c d e f g h i j k l m n o p q r s t u v w x y z

Si el START el valor es mayor que END entonces la expresión creará un rango que decrece:

for i in {3..0}
do
  echo "Number: $i"
done
Number: 3
Number: 2
Number: 1
Number: 0

Cuando un INCREMENT se da, se utiliza como paso entre cada elemento generado:

for i in {0..20..5}
do
  echo "Number: $i"
done

Cada número generado es mayor que el número anterior por 5:

Number: 0
Number: 5
Number: 10
Number: 15
Number: 20

Al usar números enteros para generar un rango, puede agregar un 0 inicial para forzar que cada número tenga la misma longitud. Para rellenar enteros generados con ceros a la izquierda, prefije START y END con un cero:

for i in {00..3}
do
  echo "Number: $i"
done
Number: 00
Number: 01
Number: 02
Number: 03

La expresión puede tener como prefijo o sufijo otros caracteres:

echo A{00..3}B
A00B A01B A02B A03B

Si la expresión no se construye correctamente, se deja sin cambios:

echo {0..}
0..

Conclusión #

La expresión de secuencia de Bash le permite generar un rango de números enteros o caracteres.

Si tiene alguna pregunta o comentario, no dude en dejar un comentario.


Linux
  1. ¿Incrementar el número de compilación en Bash?

  2. Bash + Verificar nombre por expresión regular?

  3. 6 ejemplos de expresiones condicionales de Bash (-e, -eq, -z, !=, [, [[ ..)

  4. ¿Cómo pruebo si una variable es un número en Bash?

  5. Redondear un número dividido en Bash

Bash printf - Cómo imprimir una variable en Bash

Golpe para bucle

Bash Select (hacer menús)

Ataques TCP:Predicción del número de secuencia TCP y Ataques de restablecimiento TCP

Shell/Bash Script para encontrar números primos en Linux

Bash Script for Loop explicado con ejemplos