Variável de numero inteiro ou float
Dica publicada em Shell Script / Variáveis
Variável de numero inteiro ou float
Quem nunca fez um script que esperava um numero e ter problemas com caracteres no meio? Enfim, você espera um "1024" e de repente vem um "102r4"
Uma forma fácil de resolver é validar a variável no momento da leitura :
Se quiser , também é possível ler variáveis no estilo float, ou seja, com um ponto no meio.
Exemplo: 3.141596
Ou talvez seja preciso definir uma quantidade de casas, por exemplo: uma dezena.
Existe uma enorme quantidade de regras que podem ser criadas. Só é preciso um pouquinho de conhecimento de expressões regulares e ser feliz :)
Uma forma fácil de resolver é validar a variável no momento da leitura :
until echo $escolha | grep -E '^[0-9]+$'
do
read escolha
done
echo $escolha
do
read escolha
done
echo $escolha
Se quiser , também é possível ler variáveis no estilo float, ou seja, com um ponto no meio.
Exemplo: 3.141596
until echo $escolha | grep -E '^[0-9]+\.?[0-9]+$'
do
read escolha
done
echo $escolha
do
read escolha
done
echo $escolha
Ou talvez seja preciso definir uma quantidade de casas, por exemplo: uma dezena.
echo dezena
until echo $escolha | grep -E '^[0-9]{2}$'
do
read escolha
done
echo $escolha
until echo $escolha | grep -E '^[0-9]{2}$'
do
read escolha
done
echo $escolha
Existe uma enorme quantidade de regras que podem ser criadas. Só é preciso um pouquinho de conhecimento de expressões regulares e ser feliz :)