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,
Julio
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 <https://goo.gl/axdchS>*, você receberá 553.000
resultados. Se você fizer uma outra busca, com os termos *"programação
shell linux vagas de emprego <https://goo.gl/N6zqxA>*" 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 <http://www.dicas-l.com.br/educacao/> 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:
- Programação Shell Linux;
<http://www.dicas-l.com.br/educacao/programacao-shell-linux.html>
- Dialog --por-exemplos <http://www.dicas-l.com.br/educacao/dialog.html>;
- Expressões Regulares
<http://www.dicas-l.com.br/educacao/expressoes-regulares.html>;
- Linux: Dicas e Truques (lançamento em dezembro de 2018).
à 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
***@dicas-l.com.br.
à mesmo uma chance destas que você vai deixar passar?
Para ter direito ao desconto, forneça o código promocional
BLACKFRIDAY.
Faça já sua inscrição! <http://www.dicas-l.com.br/educacao/>
Em seg, 19 de nov de 2018 Ã s 19:49, Vinicius Costa Carvalho
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