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: Julio C. Neves
Subject: Re: [shell-script] Expansão de variáveis
Date: Wed, 9 May 2012 11:57:51 -0300

Para retornar de zero a 3, deve-se fazer em ordem direta. Usando o menos o
teu retorno é na ordem reversa.

$ echo ${var:0:4}
0123

Abcs,
Julio

*
*



Em 9 de maio de 2012 11:53, Petterson Faria
<address@hidden>escreveu:

> **
>
>
> E para retornar de 0 à -3?
>
> O ${var:0:(-3)} não reconheceu.
>
> Lembro que eu usei da outra vez um "expr" pra contar o total de char e usar
> ${var:0:total-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>
>
> > 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]



reply via email to

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