|
From: | Vinicius Costa Carvalho |
Subject: | Re: [shell-script] É um número? |
Date: | Tue, 20 Nov 2018 13:50:27 -0200 |
E aí Vinícius,Acredito que sua lógica está correta, porém poderia ser simplificada retirando todos os dígitos usando ${var//[0-9]/} e testando se a string é nula com a opção -z do test, por exemplo:#!/bin/bash function is_numeric() { [[ -z ${1//[0-9]/} ]] return $? } is_numeric 12345 && echo "$_ É Numérico" is_numeric '987kajsd123' || echo "$_ Não é numérico" is_numeric "1234 " || echo "$_ Não é numérico"Isso considerando "números" como apenas positivos inteiros.Caso queira incrementar melhor seu teste para verificar negativos e decimais, poderia incluir o sinal de menos (-) e considerar o uso de ponto flutuante usando regex,function is_numeric() { [[ $1 =~ ^-?[0-9]+[,.]?[0-9]+$ ]] return $? } is_numeric -123,45 && echo "$_ É Numérico" is_numeric '987.kajsd123' || echo "$_ Não é numérico" is_numeric "1234.00 " || echo "$_ Não é numérico"AtenciosamenteRobson AlexandreEm seg, 19 de nov de 2018 às 19:49, Vinicius Costa Carvalho address@hidden [shell-script] <address@hidden> escreveu:Boa Tarde Mestres Cerv... ops... Shelleiros! :-D
Estou com uma dúvida, e gostaria da ajuda dos senhores, se possível.
Quero testar se o conteúdo de uma variável é um número..... pesquisando
no google, achei muitas formulas malucas. Procurei também no man test,
e não achei nada simples (como uma opção -e por exemplo).
Cheguei em uma solução propria, e gostaria de ver se temos opções
melhores. Segue o teste longo que acabei fazendo...
###########################################################
#!/bin/bash
read -p "Insira o valor: " STRING
vt=$(wc -m <<<${STRING})
vc=$(wc -m <<<${STRING//[!0-9]/})
[[ $vt -eq $vc ]] && echo "Eh um numero" || echo "Eh uma string"
###########################################################
Desde já agradeço,
Abraços,
--
Vinicius Costa Carvalho
"Se enxerguei mais longe, foi porque me apoiei sobre os ombros de gigantes."
Isaac Newton
--Vinicius Costa Carvalho"Se enxerguei mais longe, foi porque me apoiei sobre os ombros de gigantes."Isaac Newton
[Prev in Thread] Current Thread [Next in Thread]
- É um número?, Vinicius Costa Carvalho, 2018/11/19
- Re: [shell-script] É um número?, Robson Alexandre, 2018/11/19
- Re: [shell-script] É um número?, Vinicius Costa Carvalho <=
- Re: [shell-script] É um número?, Julio C. Neves, 2018/11/20
- Re: [shell-script] É um número?, Thomaz de Oliveira dos Reis, 2018/11/20
- Re: [shell-script] É um número?, Julio C. Neves, 2018/11/20
- Prev by Date: Re: [shell-script] Alternativa ao comando set usando read
- Next by Date: Re: [shell-script] É um número?
- Previous by thread: Re: [shell-script] É um número?
- Next by thread: Re: [shell-script] É um número?
- Index(es):