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

Re: [OT] Bash: Substituição de variável dentro de outra



On Sat, 05 May 2001 09:07:37 -0400
Gleydson Mazioli da Silva <gleydson@escelsanet.com.br> wrote:

> Oi,
> 
> Estou programando um bash script que necessita do seguinte recurso (como
> exemplo):
> host:~# export VARIAVEL1="SHELL"
> host:~# echo ${VARIAVEL1}
> SHELL
> host:~# echo "$"${VARIAVEL1}""
> $SHELL
> host:~# echo `echo "$"${VARIAVEL1}""`
> $SHELL
> ^^^^^
> O que quero é ao invés de sair "$SHELL" saia /bin/bash como se usasse o 
> comando "echo $SHELL" diretamente. Estive pesquisando na página de 
> manual do bash em procura de alguma referência sobre outras formas 
> de exibição de variáveis mas não tive muito sucesso...


A expressão

	echo "$"${VARIAVEL1}""

vai expandir no sinal $ ("$"), no valor de ${VARIABLE1} (SHELL) e na
cadeia vazía "". É isso é o que o shell lhe deu. Provavelmente não é a
solução ótima, mas essencialmente pode fazer para forçar a segunda
expansão:

	V=$SHELL
	W='$V'
	echo `eval echo $W`
	/bin/sh
	V="outra cadeia"
	echo `eval echo $W`
	outra cadeia

HTH

--
Christoph Simon
datageo@terra.com.br
---
^X^C
q
quit
:q
^C
end
x
exit
ZZ
^D
?
help
shit
.



Reply to: