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

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

Re: [shell-script] variaveis


From: opa
Subject: Re: [shell-script] variaveis
Date: Wed, 14 Apr 2004 11:24:58 -0300 hrN

Como já colocado, uma aplicação seria delimitar o nome da variável:

z=33
echo $z1

echo ${z}1
331

Mas isso pode ser feito assim:
echo $z\1
331

Considero que a grande finalidade é avisar o shell que deve realizar operações 
sobre a variável e não apenas substituir o seu valor.

Certa vez vi esta "listinha" em algum lugar, talvez nesta lista :), e não 
deixei passar:

var=nomedir/;echo $var;echo ${var%/} # Retira a parte final da string, após % 
(nomedir)
var=nome.com;echo $var;echo ${var%.com} # Idem (nome)
var=1234567890;echo ${var#1234} # retira da variável a parte inicial do valor 
dado (4567890)
uga=1234567890;echo ${uga:2:5} # mostra depois da posição 2 5 caracteres (34567)
uga=1234567890;echo ${uga:4} # motra tudo depois da posição 4 (567890)
L='1234567890';echo ${L#*5} # elimina o caracter mostrado e tudo à sua esquerda 
(67890)
L='1234567890';echo ${L%5*} # elimina o caracter informado e tudo à sua direita
SEP=`echo -e "\t";L="ab 12";C1=${L%%$SEP*} # exclui do 1.o $SEP até o final
SEP=" ";L="joao  10,00";C2=${L##*$SEP} # exclui do início até o último $SEP
var=c1:c2:c3:c4;echo ${var/:/ } # troca primeiro : por " " espaço
var=c1:c2:c3:c4;echo ${var//:/ } # troca todos : por " " espaço
echo ${var:-valdef} # se var for nula valor é valdef senão é valor $a
var=123456;echo ${#var} # comprimento da variável
echo ${!va*} # lista nome de todas as variáveis que começam com "va"


Usando isso nos scripts geralmente é possível dispensar o uso de "tr", "cut", 
"sed", etc., quando estiver tratando variáveis e, como costumo ler :) nesta 
lista, não usar canhões para abater moscas, sem falar que talvez alguns 
milissegundos possam ser poupados em cada ponto desses.

Recomendo que você brinque um pouco com isso na sua linha de comando pois, 
realmente vale a pena. Aliás acho que não será uma pena, será um livre e 
agradável passeio. :)


----------------------------------------------------------------
>From: Felipe Bender <address@hidden>
>Date: 13 Apr 2004 14:33:59 -0300
>
>Pessoal, uma pergunta bem besta...
>
>Qual a finalidade das chaves em uma variável? tipo:
>
>$teste e ${teste}
>
>
>[]'s
>Felipe Bender




reply via email to

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