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

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

Re: [shell-script] Expansão de variáveis


From: Petterson Faria
Subject: Re: [shell-script] Expansão de variáveis
Date: Wed, 9 May 2012 12:22:22 -0300

BOA!
Tenho que assistir muita palestra ainda ;)

--
Atenciosamente,
*Petterson Faria*

*"A ciência nunca resolve um problema sem criar mais dez"
(George Bernard Shaw*)




2012/5/9 Julio C. Neves <address@hidden>

> Se o que vc quer é receber tudo, menos as 3 últimas posições, o melhor é
> fazer a seguinte forma:
>
> $ echo ${var:0:$((${#var}-3))}
>
> Isso é bash puro e portanto muito mais rápido e eficiente.
>
> Abcs,
> Julio
>
> *
> *
>
>
>
> Em 9 de maio de 2012 12:06, Petterson Faria
> <address@hidden>escreveu:
>
> > **
> >
> >
> > Eu procurando? Não entendi. Não sou organizador :)
> >
> > Solução final para meu problema do "Tudo - 3":
> >
> > *${var:0:$(expr length $var - 3)}*
> >
> > --
> > Atenciosamente,
> > *Petterson Faria*
> >
> > *"A ciência nunca resolve um problema sem criar mais dez"
> > (George Bernard Shaw*)
> >
> > 2012/5/9 Julio C. Neves <address@hidden>
> >
> > > Em 9 de maio de 2012 11:49, Petterson Faria
> > > <address@hidden>escreveu:
> > >
> > > > **
> > > >
> > > >
> > > > Humm, isso mesmo. Valeu Júlio!
> > > > Lembro que tinha esse lance do () eu até cheguei a tentar
> > $(($var:0:3)),
> > > > que nem a gente faz com $((1+1)) hehehe
> > > > Show!
> > > > Muito obrigado pela explicação.
> > > > Estaremos no FSLDC palestrando novamente?
> > > >
> > > Como palestrante, não sei, pois vc está procurando novos valores aqui
> > nessa
> > > lista ;), mas claro que estaremos lá, nem que seja como ouvinte.
> > >
> > > O FSLDC é ótimo!
> > >
> > > Abcs,
> > > Julio
> > >
> > > *
> > > *
> > >
> > >
> > >
> > > >
> > > > --
> > > > Atenciosamente,
> > > > *Petterson Faria*
> > > >
> > > > *"A ciência nunca resolve um problema sem criar mais dez"
> > > > (George Bernard Shaw*)
> > > >
> > > > 2012/5/9 Julio C. Neves <address@hidden>
> > > >
> > > > > Fala Petterson,
> > > > > Isso é um pouco chato de entender, mas vamulá:
> > > > >
> > > > > » Essa expansão de parâmetro só funciona com Bash 4.0 ou mais
> > recente;
> > > > > » Existe uma expansão de parâmetro com sintaxe semelhante.
> > Experimente
> > > > > fazer:
> > > > > $ read -p "Usuário ($LOGNAME): "; echo o usuário escolhido foi
> > > > > ${REPLY:-$LOGNAME)
> > > > > e entre com seu nome e depois entre com vazio, que vc entenderá sua
> > > > > finalidade;
> > > > > » Essa expansão de parâmetro que vc está usando, serve para cortar
> de
> > > trá
> > > > > para frente, então a origem sempre será zero e, por isso, não se
> deve
> > > > > informá-la;
> > > > > » Vamos ver como proceder:
> > > > > $ var=0123456789
> > > > > $ echo ${var:0:-3}
> > > > > bash: -3: expressão de substring < 0
> > > > > # ZEBRA! Isso foi gerado pelo zero da origem. Vamos tirá-lo:
> > > > > $ echo ${var:-3}
> > > > > 0123456789
> > > > > # ZEBRA! Isso foi pq o Bash acho que vc queria fazer
> > > > > #+ a outra expansão de parâmetro (a para pegar valores
> > > > > #+ default que te mostrei).
> > > > > # Então vamos ver como deve ser:
> > > > > $ echo ${var: -3}
> > > > > 789
> > > > > $ echo ${var:(-3)}
> > > > > 789
> > > > >
> > > > > Abcs,
> > > > > Julio
> > > > >
> > > > > *
> > > > > *
> > > > >
> > > > >
> > > > >
> > > > > Em 9 de maio de 2012 11:07, Petterson Faria
> > > > > <address@hidden>escreveu:
> > > > >
> > > > > > **
> > > > > >
> > > > > >
> > > > > > Bom dia.
> > > > > >
> > > > > > Testei agora o retorno de *${PWD:0:-3}* para imprimir a variável
> > > > *MENOS*
> > > > > os
> > > > > > 3 ultimos caracteres e não deu certo.
> > > > > > Estranho porque eu tenho 98% de certeza que eu usava isso em
> outros
> > > > > > scripts.
> > > > > >
> > > > > > Alguém sabe dizer porquê? Ou como seria a forma correta?
> > > > > >
> > > > > > bash --version
> > > > > > GNU bash, version 4.1.5(1)-release (x86_64-pc-linux-gnu)
> > > > > >
> > > > > > --
> > > > > > Atenciosamente,
> > > > > > *Petterson Faria*
> > > > > >
> > > > > > *"A ciência nunca resolve um problema sem criar mais dez"
> > > > > > (George Bernard Shaw*)
> > > > > >
> > > > > > [As partes desta mensagem que não continham texto foram
> removidas]
> > > > > >
> > > > > >
> > > > > >
> > > > >
> > > > >
> > > > > [As partes desta mensagem que não continham texto foram removidas]
> > > > >
> > > > >
> > > > >
> > > > > ------------------------------------
> > > > >
> > > > > ----------------------------------------------------------
> > > > > 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
> > > > > ----------------------------------------------------------
> > > > > Esta lista é moderada de acordo com o previsto em
> > > > > http://www.listas-discussao.cjb.net
> > > > > ----------------------------------------------------------
> > > > > Servidor Newsgroup da lista: news.gmane.org
> > > > > Grupo: gmane.org.user-groups.programming.shell.brazil
> > > > >
> > > > > Links do Yahoo! Grupos
> > > > >
> > > > >
> > > > >
> > > >
> > > > [As partes desta mensagem que não continham texto foram removidas]
> > > >
> > > >
> > > >
> > >
> > >
> > > [As partes desta mensagem que não continham texto foram removidas]
> > >
> > >
> > >
> > > ------------------------------------
> > >
> > > ----------------------------------------------------------
> > > 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
> > > ----------------------------------------------------------
> > > Esta lista é moderada de acordo com o previsto em
> > > http://www.listas-discussao.cjb.net
> > > ----------------------------------------------------------
> > > Servidor Newsgroup da lista: news.gmane.org
> > > Grupo: gmane.org.user-groups.programming.shell.brazil
> > >
> > > Links do Yahoo! Grupos
> > >
> > >
> > >
> >
> > [As partes desta mensagem que não continham texto foram removidas]
> >
> >
> >
>
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>
>
> ------------------------------------
>
> ---------------------------------------------------------------------
> 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
> ---------------------------------------------------------------------
> Esta lista é moderada de acordo com o previsto em
> http://www.listas-discussao.cjb.net
> ---------------------------------------------------------------------
> Servidor Newsgroup da lista: news.gmane.org
> Grupo: gmane.org.user-groups.programming.shell.brazil
>
> Links do Yahoo! Grupos
>
>
>


[As partes desta mensagem que não continham texto foram removidas]



reply via email to

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