Bash: Substituição de variável dentro de outra

2001-05-05 Por tôpico Gleydson Mazioli da Silva
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...

---
Gleydson Mazioli da Silva
[EMAIL PROTECTED]
[EMAIL PROTECTED]

Eu cnsigo diigtar 400 caractreres pro minuo1.



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

2001-05-05 Por tôpico Christoph Simon
On Sat, 05 May 2001 09:07:37 -0400
Gleydson Mazioli da Silva [EMAIL PROTECTED] 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
[EMAIL PROTECTED]
---
^X^C
q
quit
:q
^C
end
x
exit
ZZ
^D
?
help
shit
.



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

2001-05-05 Por tôpico Gleydson Mazioli da Silva
Você nem imagina o quanto me ajudou a resolver este problema, me poupou
mais de 
120 linhas em um shell script e isto vai facilitar bastante as
atualizações do 
programa.

Muito obrigado mesmo, não achava alternativas para solucionar este
problema :-)

[]s

Christoph Simon wrote:
 
 On Sat, 05 May 2001 09:07:37 -0400
 Gleydson Mazioli da Silva [EMAIL PROTECTED] 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
 [EMAIL PROTECTED]
 ---
 ^X^C
 q
 quit
 :q
 ^C
 end
 x
 exit
 ZZ
 ^D
 ?
 help
 shit
 .

-- 
---
Gleydson Mazioli da Silva
[EMAIL PROTECTED]
[EMAIL PROTECTED]

* Quem jamais amou, vê com maus olhos as coisas do amor