shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] É um número?


From: Julio C. Neves
Subject: Re: [shell-script] É um número?
Date: Tue, 20 Nov 2018 21:26:14 -0200

Fala Vinícius,
Cara, achei a resposta do Robson na qual ele usa uma expansão de parâmetros para tentar esvaziar a variável, muito boa e bem bolada, mas é como sempre digo:

   - Nunca pergunte se dá para fazer em Shell. A pergunta correta é: Qual é a melhor maneira de fazer em Shell?

E como gosto de mostrar coisas pouco conhecidas, aqui vão uns processos de fazer o mesmo.

O mais óbvio:
$ [[ Var =~ ^[0-9]+([,.][0-9]+)?$ ]] && echo é num
Umas diferentes:
$ ((Var+0)) || echo $Var é zero ou no num  # Essa deve ser a mais veloz

$ declare -i Var
$ Var=x
$ echo $Var
0
Nesse caso, declarei $Var como inteiro (-i) e assim sendo qq valor não numérico que vc atribua a ela, vira zero.
O declare é muito pouco usado e tem umas peculiaridades interessantes:

Para termos somente maiúsculas em uma variável também podemos declará-la usando a opção -u (de uppercase = maiúscula). Veja:
$ declare -u Maiusc
Uma vez assim declarada, veja este exemplo:
$ read -p "Tecle algo: " Maiusc 
Tecle algo: converte para maiúsculas 
$ echo $Maiusc 
CONVERTE PARA MAIÚSCULAS

O inverso disso seria usarmos a opção -l (de lowercase = minúscula). Veja:
$ declare -l Minusc 
$ read -p "Tecle algo: " Minusc 
Tecle algo: CONVERTE PARA MINÚSCULAS
$ echo $Minusc 
converte para minúsculas

Um botão do yad só aceita ser associado à execução de uma função se ela for declarada com export -f ou declare -f

Vetores associativos (os indexados por nomes) obrigatoriamente têm de ser declarados como:
$ declare -A vetor
$ vetor[mel]=doce

Abraços,
Juli

Uma decisão importante para sua carreira (ou super BlackFriday já)

Se você fizer uma busca no google pelos termos concurso público programação shell, você receberá 553.000 resultados. Se você fizer uma outra busca, com os termos "programação shell linux vagas de emprego" serão gerados 134.000 resultados. Por ser um sistema operacional livre e gratuito, e de grande qualidade, a sua adoção tem crescido exponencialmente em todos os tipos de empresas, sejam elas públicas ou privadas. É o tipo de conhecimento que você não pode deixar de fora do seu currículo.

Tudo bem, você pode começar a estudar quando o concurso for aberto, ou quando aparecer uma oportunidade, mas será que você não sairia na frente se começasse a se capacitar imediatamente? Nesta semana de Black Friday, nós estamos fazendo uma oferta especial para quem quer começar a consolidar uma carreira com conhecimentos valiosos. Nesta promoção, TODOS os cursos do portal Dicas-L Educação estarão sendo oferecidos por apenas R$ 497,00. Se você fosse contratar estes cursos individualmente, o valor total seria de R$ 1.888,00. E tem mais, você pode parcelar este valor em dez parcelas iguais. Não perca esta chance, pois as inscrições para esta promoção se encerram impreterívelmente no dia 23 de novembro, sexta-feira, às 23h59m.

Mas porque estamos fazendo isto? Apenas queremos dar uma oportunidade para aqueles que sempre quiseram estudar conosco e por alguma limitação financeira não conseguiram. Com uma parcela de apenas R$ 49,70 o nosso objetivo foi garantir o acesso a todos aqueles que realmente querem se destacar profissionalmente e progredir em suas carreiras.

A promoção contempla os seguintes cursos:

É muito conteúdo, mas esta não deve ser sua preocupação, pois o acesso aos cursos é vitalício e você pode acessar o material quantas vezes quiser, por quanto tempo precisar. Além do acesso vitalício, estamos também sempre a disposição para esclarecer qualquer dúvida que você tiver, basta escrever para nós. Estamos totalmente comprometidos com seu sucesso e entendemos que o acompanhamento é vital para que esta meta seja alcançada.

Se ainda ficou alguma dúvida sobre o curso, estamos à sua disposição para qualquer tipo de esclarecimento. Basta enviar sua dúvida para o email address@hidden.

É mesmo uma chance destas que você vai deixar passar?

Para ter direito ao desconto, forneça o código promocional

BLACKFRIDAY.




Em 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


reply via email to

[Prev in Thread] Current Thread [Next in Thread]