Rango de bash

Rango de bash
Puedes iterar la secuencia de números en Bash de dos maneras. Uno es usando el sesco comando, y otro es especificando el rango en bucle. En el SEQ Comando, la secuencia comienza a partir de una, el número se incrementa en uno en cada paso e imprima cada número en cada línea hasta el límite superior de forma predeterminada. Si el número comienza desde el límite superior, entonces disminuye en uno en cada paso. Normalmente, todos los números se interpretan como un punto flotante, pero si la secuencia comienza desde un entero, los enteros decimales se imprimirán. Si el comando SEQ puede ejecutarse correctamente, entonces devuelve 0; de lo contrario, devuelve cualquier número distinto de cero. También puede iterar la secuencia de números usando para bucle con rango. Ambos sesco El comando y el bucle con rango se muestran en este tutorial utilizando ejemplos.

Las opciones del comando SEQ:

Puedes usar el SEQ Comando utilizando las siguientes opciones.
-w

Esta opción se usa para rellenar los números con ceros líderes para imprimir todos los números con igual ancho.
-F formato

Esta opción se usa para imprimir números en un formato particular. El número flotante puede formatearse usando %F, %G y %E como caracteres de conversión. %g se usa como predeterminado.
-string s

Esta opción se usa para separar los números con cadena. El valor predeterminado es una nueva línea ('\ n').

Ejemplos del comando SEQ:

Puede aplicar el comando SEQ de tres maneras. Puede usar solo el límite superior o límite superior e inferior o límite superior e inferior con un valor de incremento o disminución de cada paso. Diferentes usos del comando SEQ con opciones se muestran en los siguientes ejemplos.

Ejemplo-1: comando SEQ sin la opción

Cuando se usa el único límite superior, el número comenzará desde 1 y se incrementará en uno en cada paso. El siguiente comando imprimirá el número de 1 a 4.

$ SEQ 4

Producción:
La siguiente salida aparecerá después de ejecutar el comando anterior.

Cuando los dos valores se usan con el comando SEQ, el primer valor se utilizará como el número de inicio, y el segundo valor se usará como el número de finalización. El siguiente comando imprimirá el número de 7 a 15.

$ SEQ 7 15

Producción:
La siguiente salida aparecerá después de ejecutar el comando anterior.

Al usar tres valores con el comando SEQ, el segundo valor se utilizará como un valor de incremento o disminución para cada paso. Para el siguiente comando, el número de inicio es 10, el número de finalización es 1, y cada paso se contará disminuyendo 2.

$ SEQ 10-2 1

Producción:
La siguiente salida aparecerá después de ejecutar el comando anterior.

Ejemplo -2: SEQ with -w opción

El siguiente comando imprimirá la salida agregando cero lidera para el número de 1 a 10.

$ SEQ -W 01 10

Producción:

La siguiente salida aparecerá después de ejecutar el comando anterior.

Ejemplo -3: SEQ with -s opción

El siguiente comando usa "-" Como separador para cada número de secuencia. La secuencia de números se imprimirá agregando "-" Como el separador.

$ SEQ -S - 8

Producción:
La siguiente salida aparecerá después de ejecutar el comando anterior.

Ejemplo -4: SEQ with -f opción

El siguiente comando imprimirá 10 valores de fecha a partir de 1. Aquí, la opción "%g" se usa para agregar números de secuencia con otros valores de cadena.

$ SEQ -F "%G/04/2018" 10

Producción:
La siguiente salida aparecerá después de ejecutar el comando anterior.

El siguiente comando se usa para generar la secuencia de números de punto flotante usando "%F". Aquí, el número comenzará a partir de 3 y se incrementará por 0.8 en cada paso, y el último número será menor o igual a 6.

$ seq -f "%f" 3 0.8 6

Producción:
La siguiente salida aparecerá después de ejecutar el comando anterior.

Ejemplo-5: escriba la secuencia en un archivo

Si desea guardar la secuencia de números en un archivo sin imprimir en la consola, puede usar los siguientes comandos. El primer comando imprimirá los números en un archivo llamado "sesco.TXT". El número se generará de 5 a 20 y se incrementará en 10 en cada paso. El segundo comando imprimirá el contenido del "sesco.TXT"Archivo en la terminal.

$ SEQ 5 10 20 | CAT> SEQ.TXT
$ Cat SEQ.TXT

Producción:
La siguiente salida aparecerá después de ejecutar el comando anterior.

Ejemplo-6: Uso de 'SEQ' para crear el nombre de archivo

Supongamos que desea crear archivos llamados FN1 a FN10 usando para bucle con SEQ. Crear un archivo llamado "SQ1.Bash ”y agregue el siguiente código. Para el bucle iterará por 10 veces usando el comando 'SEQ' y creará 10 archivos en la secuencia FN1, FN2, FN3 ... FN10.

#!/bin/bash
# Generar 10 números de secuencia
para yo en 'seq 10'
hacer
# Crea el nombre de archivo
toque fn $ i
hecho

Ejecute los siguientes comandos para ejecutar el código del archivo bash y verifique si los archivos se crean o no.

$ bash sq1.intento
$ LS

Producción:
La siguiente salida aparecerá después de ejecutar los comandos anteriores.

Ejemplos de para bucle con rango:

La alternativa del comando 'SEQ' es el rango. Puede usar el rango en bucle para generar la secuencia de números como 'SEQ'. La expresión del rango se define mediante el uso de soportes rizados y puntos dobles. La sintaxis de la expresión de rango se muestra a continuación.

Sintaxis:

Inicio ... detener [... incremento]

Aquí, el valor del Comenzar y Detener puede ser cualquier entero o carácter positivo. Estos valores son obligatorios para definir la expresión de rango y separados por puntos dobles. El valor del Incremento puede ser cualquier entero positivo o negativo, y es opcional. Este valor se define después del Detener valor con puntos dobles. Se han mostrado diferentes usos de la expresión de rango en los siguientes ejemplos.

Ejemplo-7: Uso del rango con valores de inicio y parada

Crear un archivo bash llamado "sq2.intento"Con el siguiente código. El bucle iterará por 5 veces e imprimirá la raíz cuadrada de cada número en cada iteración.

#!/bin/bash
# Genere la serie de números del 1 al 5
para n en 1 ... 5
hacer
# Calcule la raíz cuadrada
((resultado = n*n))
# Imprime el valor cuadrado
echo $ n cuadrado = $ resultado
hecho

Ejecute el siguiente comando para ejecutar el script anterior.

$ bash sq2.intento

Producción:
La siguiente salida aparecerá después de ejecutar el script.

Ejemplo-8: Uso del rango con valor de incremento positivo

Por defecto, el número se incrementa en uno en cada paso en un rango como SEQ. También puede cambiar el valor de incremento en el rango. Escriba el siguiente código en un archivo bash llamado "sq3.intento". El bucle para el script iterará 5 veces; Cada paso se incrementa en 2 e imprime todos los números impares entre 1 y 10.

#!/bin/bash
Echo "Todos los números impares del 1 al 10 son"
# Generar números impares del 1 al 10
para i en 1 ... 10 ... 2
hacer
# Imprime el valor
echo $ i;
hecho

Ejecute el siguiente comando para ejecutar el script anterior.

$ bash sq3.intento

Producción:

La siguiente salida aparecerá después de ejecutar el script.

Ejemplo-9: Uso del rango con cero líder

La secuencia de números con cero principal se puede generar utilizando el rango también. Crear un archivo bash llamado Seq4.intento con el siguiente script para generar cinco números secuenciales con cero de 1 a 5 agregando la cadena 'id' en la parte delantera de cada número.

#!/bin/bash
echo "Generar valores de identificación:"
# Defina el valor de inicio del rango con cero líder
para i en 01 ... 5
hacer
# Imprima el valor con 'id-'
Echo "Id- $ I"
hecho

Ejecute el siguiente comando para ejecutar el script anterior.

$ bash sq4.intento

Producción:
La siguiente salida aparecerá después de ejecutar el script.

Ejemplo-10: Uso del rango con valor de incremento negativo

Crear un archivo bash llamado SEQ5.intento con el siguiente script para generar seis números secuenciales en orden descendente a partir de 10 y disminuido en 2 en cada paso.

#!/bin/bash
Echo "Generar números pares en orden descendente:"
# Definir el valor de inicio del rango con un valor de incremento negativo
para i en 10 ... 0 ... -2
hacer
# Imprima el valor con 'id-'
echo "El valor es $ i"
hecho

Ejecute el siguiente comando para ejecutar el script anterior.

$ bash sq5.intento

Producción:
La siguiente salida aparecerá después de ejecutar el script.

Ejemplo-11: Genere números secuenciales con valores de carácter y número

Crear un archivo bash llamado SEQ6.intento con el siguiente script para generar salida basada en dos valores de rango. El bucle exterior generará tres caracteres de A a C, y el bucle interno generará tres números del 1 al 3.

#!/bin/bash
Echo "La serie secuencial con alfabeto y número:"
# Defina el rango con alfabetos
para val1 en a ... c
hacer
# Defina el rango con números
para val2 en 01 ... 3
hacer
# Imprima el valor con la contención del alfabeto y el número
echo $ val1 $ val2
hecho
hecho

Ejecute el siguiente comando para ejecutar el script anterior.

$ bash sq6.intento

Producción:
La siguiente salida aparecerá después de ejecutar el script.

Ejemplo-12: Uso del rango con prefijo y sufijo

Crear un archivo bash llamado Seq7.intento con el siguiente script para generar 5 nombres de archivos agregando prefijo y sufijo con el rango de números. En el guión, 'perfil'es el valor de prefijo y'.png'¿Es el valor de sufijo.

#!/bin/bash
Echo "La serie de nombres de archivo es:"
# Generar cinco nombres de archivo con la extensión 'PNG'
Para el nombre de perfil 1 ... 5.png; hacer
# Imprima el nombre de archivo
echo "nombre de archivo: $ nombre"
hecho

Ejecute el siguiente comando para ejecutar el script anterior.

$ bash sq7.intento

Producción:
La siguiente salida aparecerá después de ejecutar el script.

Conclusión:

Se han mostrado dos formas de generar la secuencia de números en este tutorial utilizando múltiples ejemplos. Una forma es el comando 'SEQ', y otra forma es usar el rango con bucle. Los usuarios de BASH podrán generar la secuencia de números de manera eficiente después de practicar los ejemplos de este tutorial.