¿Como validar si un parametro es un numero entero en UNIX?

publicado por: Anonymous

Tengo que hacer un script que reciba dos parámetros, de los cuales el segundo debe ser un número entero. No tengo idea de como validar eso.

 if test $2 =~ "^[0-9]+$"
 then
  echo "nNumero positivo entero"
 else
  echo "nError: El numero $2 no es un numero entero positivo!!!a"
 fi

solución

Tu puedes usar expresiones regulares para validar numeros, ya sean enteros, enteros negativos o decimales, tu podrías realizar algo como esto:

validate_number=^-?[0-9]+([.][0-9]+)?$;
echo "Please Enter your number ";
read number
if ![[ $number =~ $validate_number ]]; then
echo "number not valid"
fi

las expresiones reguales son:

[1.] ^-? esta expresión verifica el principio de cadena y si contiene algún caracter solo uno –

[2.] [0-9] verifica que sean numeros del 0 al 9

[3.] el caracter + especifica el operador o

[4.] ([.][0-9]+)$ confirma si el valor ingresado fue un número decimal y verifica el final de cadena con $

El código anterior recibe un argumento de teclado y verifica si lo ingresado fue realmente un numero, ya sea positivo, negativo o decimal

Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *