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:39:30 -0300

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]



reply via email to

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