Introducción
La expresión de secuencia Bash genera un rango de números enteros o caracteres definiendo un punto inicial y final del rango. Generalmente se usa junto con bucles for
En este artículo, cubriremos los conceptos básicos de la expresión de secuencias en Bash.
Expresión de la 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
yEND
pueden ser números enteros positivos o caracteres individuales.- Los
START
yEND
son obligatorios y están separados por dos puntos..
, sin espacios entre ellos. - El
INCREMENT
es opcional, si está presente debe separarse del valorEND
..
, sin espacios entre ellos. Cuando se dan caracteres, la expresión se expande en orden lexicográfico. - La expresión se expande a cualquier número o carácter entre
START
yEND
, incluidos los valores proporcionados. - Una expresión formada incorrectamente permanece sin cambios.
Aquí está la expresión en acción:
echo {0..3}
Cuando INCREMENT
, el incremento predeterminado es 1:
0 1 2 3
También puede utilizar otras fuentes. El siguiente ejemplo imprime el alfabeto:
echo {a..z}
abcdefghijklmnopqrstu vwxyz
Si el START
es mayor que END
, la expresión creará un intervalo que disminuirá:
for i in {3..0}
do
echo "Number: $i"
done
Number: 3
Number: 2
Number: 1
Number: 0
Cuando INCREMENT
, se utiliza como un 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 en 5:
Number: 0
Number: 5
Number: 10
Number: 15
Number: 20
Cuando se usan números enteros para generar un rango, 0
para forzar que cada número tenga la misma longitud. Para rellenar los enteros generados con el prefijo START
y END
con un cero a la izquierda:
for i in {00..3}
do
echo "Number: $i"
done
Number: 00
Number: 01
Number: 02
Number: 03
La expresión puede ir precedida o con el sufijo de otros caracteres:
echo A{00..3}B
A00B A01B A02B A03B
Si la expresión no se construye correctamente, permanece sin cambios:
echo {0..}
0..
Conclusión
La expresión de secuencia Bash le permite generar un rango de números enteros o caracteres.