Variável de numero inteiro ou float

Publicado por Jônatas Ramiro Goulat em 24/08/2011

[ Hits: 6.226 ]

 


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 :

until echo $escolha | grep -E '^[0-9]+$'
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

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

Existe uma enorme quantidade de regras que podem ser criadas. Só é preciso um pouquinho de conhecimento de expressões regulares e ser feliz :)


Outras dicas deste autor
Nenhuma dica encontrada.
Leitura recomendada

Como lidar com variáveis retornadas pelo Expect - removendo CR do fim de linha

Nome de arquivo com espaço dentro de variáveis

Como exibir números com um largura fixa de caracteres, complentando com zeros a esquerda

Exportar variáveis de um script no mesmo sub-shell

Script IP Válidos na rede interna

  

Comentários

Nenhum comentário foi encontrado.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts