Verifique si una variable contiene un número en Bash

Verifique si una variable contiene un número en Bash

Un número es una combinación de 0-9 dígitos: las variables de Bash almacenan todo el valor en forma de cadenas. Incluso si el valor almacenado está en formato de cadena, podemos realizar todas las operaciones aritméticas si el valor almacenado es un número válido. Como una mejor práctica, debemos verificar los valores de las variables antes de realizar las operaciones aritméticas.

Un número puede ser un número entero, un número de punto flotante o un número positivo/negativo que prefije con un símbolo "+ y -". En este tutorial, hemos discutido algunos métodos para verificar que la variable contenga solo dígitos, enteros y valores dobles o flotantes, no alfabetos.

Usando operador igual de Tilde (= ~)

La expresión regular es una forma rápida y fácil de verificar si un valor es un número. En Bash Scripting, el igual a Tilde (= ~) El operador se utiliza para comparar un valor con una expresión regular. Que se puede usar con la declaración BASH si:

#!/usr/bin/env Bash # shell script para verificar si el número de entrada es una lectura entera -p "Ingrese un número:" var if [[$ var = ~ ^[0-9]+$]]; Entonces echo "$ var es un número" else echo "$ var no es un número" fi "
12345678910#!/usr/bin/env Bash# shell script para verificar si el número de entrada es una lectura entera -p "Ingrese un número:" var if [[$ var = ~ ^[0-9]+$]]; Entonces echo "$ var es un número" else echo "$ var no es un número" fi "

Escriba el fragmento anterior en un script de shell y ejecute. Entrada por primera vez un número de valor.

Primera ejecución, ingrese un número: 12 12 es un número 

Nuevamente ejecute el script con algunos alfabetos y verifique la salida:

Segunda ejecución, ingrese un número: 1A2B 12A no es un número 

Verifique si el número de punto flotante

Un número de punto flotante es un tipo entero que representa un número que puede contener una parte fraccional (también conocida como flotante). Como su nombre indica, estos números pueden tomar diferentes valores en diferentes lugares y tiempos. Los números de punto flotante se usan típicamente para representar números con un punto decimal en ellos. Por ejemplo, 1.0, 0.6 y 10.26 son todos números de punto flotante.

Escriba un nuevo script de shell que considera un número de punto flotante como un número válido.

#!/usr/bin/env Bash # shell script para verificar si el número de entrada es un número # que puede ser un número entero o número de punto flotante Leer -p "Ingrese un número:" Var si [$ var = ~ ^[0 -9]+([[.] [0-9]+)?ps Entonces echo "$ var es un número" else echo "$ var no es un número" fi "
1234567891011#!/usr/bin/env Bash# shell script para verificar si el número de entrada es un número# que puede ser un número entero o número de punto flotante Leer -p "Ingrese un número:" Var si [$ var = ~ ^[0 -9]+([[.] [0-9]+)?ps Entonces echo "$ var es un número" else echo "$ var no es un número" fi "

Ejecutar el script anterior ingresando algunos números de puntos flotantes. Este script considerará todos los números de puntos flotantes como números válidos.

Primera ejecución, ingrese un número: 12.10 12.10 es un número 

Usando la declaración de casos de interruptor

Algunos de los scripts requeridos para tener una declaración de caso. Que es similar a cambiar las declaraciones en otros lenguajes de programación. También podemos usar expresiones regulares en las opciones de estado de instrucción y verificar si la entrada dada es un número.

#!/usr/bin/env Bash # shell script para verificar si el número de entrada es un número # usando la instrucción de caso de conmutación Leer -p "Ingrese un número:" Var Case $ Varin "|*[!0-9]*) echo "$ var no es un número" ;; *) echo "$ var es un número" ;; ESAC
12345678910#!/usr/bin/env Bash# shell script para verificar si el número de entrada es un número# usando la instrucción de caso de conmutación Leer -p "Ingrese un número:" Var Case $ Varin "|*[!0-9]*) echo "$ var no es un número" ;; *) echo "$ var es un número" ;; esac

Ejecute el script anterior varias veces con diferentes entradas y vea los resultados:

Primera ejecución, ingrese un número: 12 12 es un número 

Compruebe si el número contiene +/- Señales

En los métodos anteriores, hemos verificado los valores enteros que contienen solo 0-9 dígitos, un número de punto flotante que también contiene una fracción de valores conocidos como números decimales. En algunos casos, un número también puede ser positivo o negativo. Cualquier número sin prefijo o con + es un número positivo. El número con - El prefijo es un número negativo.

Actualizar la expresión regular, para considerar un número que tiene un +/- canta antes.

#!/usr/bin/env Bash # script de shell para verificar si el número de entrada es un número # y puede ser un número positivo o negativo Leer -p "Ingrese un número:" var if [$ var = ~ ^[+ - - ]?[0-9]+$]]; Entonces echo "$ var es un número" else echo "$ var no es un número" fi "
1234567891011#!/usr/bin/env Bash# script de shell para verificar si el número de entrada es un número# y puede ser un número positivo o negativo Leer -p "Ingrese un número:" var if [$ var = ~ ^[+ - - ]?[0-9]+$]]; Entonces echo "$ var es un número" else echo "$ var no es un número" fi "

Ejecute el script anterior con diferentes 2 entradas y verifique los resultados.

Primera ejecución, ingrese un número: 12 12 es un número segundo de ejecución, ingrese un número: -12 -12 es un número tercero ejecutado, ingrese un número: +12 +12 es un número 

Compruebe si un número es postivo o negativo

Mientras realiza operaciones aritméticas en scripts bash, debe verificar los valores de entrada. El siguiente script de shell lo ayudará a verificar si el número de entrada es un número positivo o un número negativo.

#!/usr/bin/env Bash # shell script para verificar si el número de entrada # es un número positivo o número negativo Leer -p "Ingrese un número:" var ## verifique si la entrada es un número válido si [[$ var es [$ var = ~ ^[+,-]?[0-9]+$]]; Entonces ## Verifique si la entrada es un número positivo o negativo si [[$ var = ~ ^[-] [0-9]+$]]; Entonces echo "$ var es un número negativo" else echo "$ var es un número positivo" fi más echo "$ var no es un número" fi -fi
1234567891011121314151617#!/usr/bin/env Bash# shell script para verificar si el número de entrada# es un número positivo o número negativo Leer -p "Ingrese un número:" Var ## Compruebe si la entrada es un número válido [[$ var = ~ ^[+,-]?[0-9]+$]]; Entonces ## Verifique si la entrada es un número positivo o negativo si [[$ var = ~ ^[-] [0-9]+$]]; Entonces echo "$ var es un número negativo" else echo "$ var es un número positivo" Fielse echo "$ var no es un número" fi -Fi

Ejecute el script anterior con números positivos y negativos. Luego verifique los resultados.

Primera ejecución, ingrese un número: 12 12 es un número positivo en el segundo ejecución, ingrese un número: -12 -12 es un número negativo tercero ejecución, ingrese un número: +12 +12 es un número positivo 

Conclusión

Un número es una colección de dígitos de 0 a 9. Cualquier número puede ser un número positivo o negativo. Un número puede ser un número entero o de punto flotante. Este tutorial lo ayudó a verificar si el valor dado es un número o no en scripting de bash.