Temos aqui alguns problemas:
» O case não aceita expressões regulares e sim os coringas de expansão de
arquivo (glob expansion) e
a barra vertical (|) como 'ou';
» Um colega de lista reportou que o resultado não seria necessariamente
inteiro, poderia ser núm real.
Esse último arrasa a solução do Paulo Bettega, veja:
$ Nota=80,09
$ case $Nota in
> *100%) echo 100 ;; # ou *100*) caso exista 100.0%
> *[01][0-9]*) echo 000 ;;
> *[23][0-9]*) echo 020 ;;
> *[45][0-9]*) echo 040 ;;
> *[67][0-9]*) echo 060 ;;
> *[89][0-9]*) echo 080 ;;
> *) echo erro? ;;
> esac
000
O case deveria voltar 080, mas a glob casou com o 09 da expressão. Creio que a
saída seja usar um
[!.] (não ponto) e um 'ou' (|), para distinguir resultados inteiros de reais:
$ case $Nota in
*[!.][01][0-9]%*|*[01][0-9].*) echo 000 ;;
*[!.][23][0-9]%*|*[23][0-9].*) echo 020 ;;
*[!.][45][0-9]%*|*[45][0-9].*) echo 040 ;;
*[!.][67][0-9]%*|*[67][0-9].*) echo 060 ;;
*[!.][89][0-9]%*|*[89][0-9].*) echo 080 ;;
*) echo 100
esac
Acho que deve ter algo mais sucinto para fazer isso, mas não estou conseguindo
"ver" agora.
Abcs,
Julio
*@juliobash**
Próximos cursos de Shell*
*Cidade LocalPeríodo*
*Rio de JaneiroEDX <http://edx.srv.br/>09 a 13/03/15*
*São Paulo 4Linux
<http://www.4linux.com.br/cursos/programacao-em-shell-script>24 a 28/11/14*
Dou treinamento de /Shell/ em qualquer cidade.
Para mais detalhes, me mande um e-mail <mailto:address@hidden>.
Em 8 de janeiro de 2015 16:55, Paulo Bettega address@hidden
<mailto:address@hidden> [shell-script] <address@hidden
<mailto:address@hidden>> escreveu:
Mestre Julio, mas nesse caso o 100% não cairia na primeira opção?
case $Nota in
*[01][0-9]*%) echo 000 ;;
Colocando o 100% literal no começo resolveria.
case $Nota in
*100%) echo 100 ;; # ou *100*) caso exista 100.0%
*[01][0-9]*) echo 000 ;;
*[23][0-9]*) echo 020 ;;
*[45][0-9]*) echo 040 ;;
*[67][0-9]*) echo 060 ;;
*[89][0-9]*) echo 080 ;;
*) echo erro? ;;
esac
Abraços Paulo Bettega
On 08-01-2015 16:12, 'Julio C. Neves' address@hidden <mailto:address@hidden>
[shell-script] wrote:
> Valeu Paulo, mas é melhor tirar o ponto, pois podem aparecer números
inteiros. O asterisco só já
> resolve isso.
>
> Em 08/01/2015 11:27, "Paulo Bettega address@hidden
<mailto:address@hidden>
<mailto:address@hidden <mailto:address@hidden>>
> [shell-script]" <address@hidden <mailto:address@hidden>
<mailto:address@hidden <mailto:address@hidden>>> escreveu:
>
> Julio, aqui não deu certo, a saída do upower fica assim
> percentage: 34.2032%
> mas nem sempre com quatro casas depois da vírgula.
>
> $ upower -v
> UPower client version 0.9.17
> UPower daemon version 0.9.1
>
>
> Com o case de acordo o script funciona
> case $Nota in
> *[01][0-9].*%) echo 000 ;;
> *[23][0-9].*%) echo 020 ;;
> *[45][0-9].*%) echo 040 ;;
> *[67][0-9].*%) echo 060 ;;
> *[89][0-9].*%) echo 080 ;;
> *) echo 100 ;;
> esac
>
> O meu note é velho e a bateria dura umas 2 horas, é o ideal pra
testar
> um script desses :)
> while true;do bateria.sh;sleep 60;done
> cai 1% a cada minuto mais ou menos.
>
> Abraços Paulo Bettega
>
>
> On 08-01-2015 09:53, 'Julio C. Neves' address@hidden
<mailto:address@hidden> <mailto:address@hidden <mailto:address@hidden>>
> [shell-script] wrote:
> > Mas vc testou o bacalho? Conhecia o notify-send? O script dá para
entender?
> >
> > Abcs,
> > Julio
> > *@juliobash**
> > Próximos cursos de Shell*
> > *Cidade LocalPeríodo*
> > *Rio de JaneiroEDX <http://edx.srv.br/>09 a 13/03/15*
> > *São Paulo 4Linux
<http://www.4linux.com.br/cursos/programacao-em-shell-script>24 a
28/11/14*
> > Dou treinamento de /Shell/ em qualquer cidade.
> > Para mais detalhes, me mande um e-mail <mailto:address@hidden
<mailto:address@hidden>
> <mailto:address@hidden <mailto:address@hidden>>>.
> >
> >
> > Em 8 de janeiro de 2015 09:21, MrBiTs address@hidden
<mailto:address@hidden> <mailto:address@hidden <mailto:address@hidden>>
> <mailto:address@hidden <mailto:address@hidden> <mailto:address@hidden
<mailto:address@hidden>>>
> > [shell-script] <address@hidden
<mailto:address@hidden> <mailto:address@hidden
<mailto:address@hidden>>
> <mailto:address@hidden <mailto:address@hidden>
<mailto:address@hidden <mailto:address@hidden>>>> escreveu:
> >
> > __
> >
> > -----BEGIN PGP SIGNED MESSAGE-----
> > Hash: SHA256
> >
> > > Eu vi um script que media a bateria do notebook e fiz uma
coisa que estava com
vontade de
> > fazer mas esquecia sempre: veja que
> > > legal (em debian, pelo menos, funciona pq o notify-send
vem instalado), mas não
está
> testado.
> > Meu note é novo e a bateria é de
> > > 12 horas aí não sai de 100% de carga.
> > >
> > > Se alguém descobrir zebra, me relate, por favor.
> > >
> > > #!/bin/bash Nota=$(upower -i $(upower -e | grep BAT) |
grep percentage)
> > >
> > > Faixa=$(case $Nota in *0[01][0-9]%) echo 000 ;;
*0[23][0-9]%) echo 020 ;;
> *0[45][0-9]%) echo
> > 040 ;; *0[56][0-9]%) echo 060 ;;
> > > *0[78][0-9]%) echo 080 ;; *) echo 100;; esac) # Se seu
bash for anterior ao
4.0, deve ser
> > adicionado um abre parênteses antes
> > > de cada asterisco
> > >
> > > notify-send -i gpm-battery-$Faixa $Nota # a opção -i
especifica o ícone
(/usr/share/icons)
> > >
> > > MrBiTs me desculpe, mas é um codeguinho piquinininho e
colocar num site toma muito
> tempo e se
> > toma tempo não tenho tempo de
> > > tomar chope. ;)
> > >
> >
> > A bateria do meu notebook também não sai dos 100%. É só
deixá-lo ligado na fonte :)
> >
> > Entre colocar código em pastebin e ir tomar chope, vá tomar
chope. Homem nenhum no
mundo
> deveria
> > ser privado de seu direito divino
> > de tomar um chope.
> >
> > De mais a mais, você manda e-mails em plaintext, então
prejudica menos a leitura.
> >
> > - --
> > echo
> >
>
920680245503158263821824753325972325831728150312428342077412537729420364909318736253880971145983128276953696631956862757408858710644955909208239222408534030331747172248238293509539472164571738870818862971439246497991147436431430964603600458631758354381402352368220521740203494788796697543569807851284795072334480481413675418412856581412376640379241258356436205061541557366641602992820546646995466P
> > | dc
> >
> > -----BEGIN PGP SIGNATURE-----
> > Version: GnuPG v1
> > Comment: Using GnuPG with Thunderbird -
http://www.enigmail.net/
> >
> >
iQEcBAEBCAAGBQJUrmhBAAoJEG7IGPwrPKWrxnIH/22k43muwUyw/ayLsx8xAOqS
> >
LyVmowatOY8TK8uhLMbcFqW3bMYH+kd5E7OqACfDFbXDNFSCbkNhrgBdswqVHHVA
> >
LmhE8YYPv1a0j6k5i90uTlnHJY6hHh0r6tGwHpwV/hEnFFkz3JkmQIiRCUR5yYEP
> >
KBcYRoPk0l2qe0vm8IiYUS+57nnI4kLqPqyEaT8FENV7/GSPqsN9b8JlSmurDYGP
> >
VODSe5vUGi0BmkQ7XjwhiGw2Wsc3y2QEZvOKzeEWl1Uvk41EzwFN20skoq2MIWtw
> >
Xu8V9xKluonemPqi0RQA9Zk0/egcG4VFFauXm0tzmnksBiB9zc/Z0v+MJBWagWA=
> > =mwOk
> > -----END PGP SIGNATURE-----
> >
> >
> >
> >
>
----------------------------------------------------------------------------------------------------
> > Enviado por: "Julio C. Neves" <address@hidden
<mailto:address@hidden>
<mailto:address@hidden <mailto:address@hidden>>>
>
>
> ------------------------------------
>
> ------------------------------------
>
> ---------------------------------------------------------------------
> Esta lista não admite a abordagem de outras liguagens de
programação, como perl, C etc. Quem
> insistir em não seguir esta regra será moderado sem prévio aviso.
> ---------------------------------------------------------------------
> Sair da lista: address@hidden
<mailto:address@hidden>
> <mailto:address@hidden
<mailto:address@hidden>>
> ---------------------------------------------------------------------
> Esta lista é moderada de acordo com o previsto em
http://www.listas-discussao.cjb.net
> ---------------------------------------------------------------------
> Servidor Newsgroup da lista: news.gmane.org <http://news.gmane.org>
<http://news.gmane.org>
> Grupo: gmane.org.user-groups.programming.shell.brazil
>
>
> ------------------------------------
>
> Links do Yahoo Grupos
>
>
>
>
----------------------------------------------------------------------------------------------------
> Enviado por: "Julio C. Neves" <address@hidden <mailto:address@hidden>>
------------------------------------
------------------------------------
---------------------------------------------------------------------
Esta lista não admite a abordagem de outras liguagens de programação, como
perl, C etc. Quem
insistir em não seguir esta regra será moderado sem prévio aviso.
---------------------------------------------------------------------
Sair da lista: address@hidden
<mailto:address@hidden>
---------------------------------------------------------------------
Esta lista é moderada de acordo com o previsto em
http://www.listas-discussao.cjb.net
---------------------------------------------------------------------
Servidor Newsgroup da lista: news.gmane.org <http://news.gmane.org>
Grupo: gmane.org.user-groups.programming.shell.brazil
------------------------------------
Links do Yahoo Grupos
----------------------------------------------------------------------------------------------------
Enviado por: "Julio C. Neves" <address@hidden>