Variável de numero inteiro ou float

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

[ Hits: 8.012 ]

 


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

Site para montar regras de iptables

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

Compilar programas com muitos parâmetros

Verificar saída de comando. Será que meu comando deu erro?

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

  

Comentários

Nenhum comentário foi encontrado.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts