Saber si una variable es numérica en Shell Script

Para saber si una variable es numérica en Shell Script podemos comprobar con una expresión regular si todos sus caracteres son numéricos. Lo podríamos hacer así:

[[ "$variable" =~ ^[0-9]+$ ]]

Donde indicamos que entre el comienzo (^) y el final ($) hay una o más veces (+) un elemento comprendido en el rango de 0 a 9 ([0-9]).

Si hacemos esta comprobación en un if, nos devolverá verdadero si todos los caracteres son numéricos y falso si alguno no lo es.

Podemos recorrer una lista con varios valores y comprobar uno a uno cuáles nos indica que es un valor numérico y cuáles no:

#!/bin/bash

for var in 2 hola 32 mundo 123456 . ,
do
    if [[ "$var" =~ ^[0-9]+$ ]]
    then
        echo $var es un número
    else
        echo $var no es un número
    fi
done

Que nos devuelve:

2 es un número
hola no es un número
32 es un número
mundo no es un número
123456 es un número
. no es un número
, no es un número

 

Deja una respuesta

Tu dirección de correo electrónico no será publicada.