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

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

Exibir conteúdo de variável cujo nome está em outra veriável


From: Julio Cezar Neves - DATAPREVRJ
Subject: Exibir conteúdo de variável cujo nome está em outra veriável
Date: Wed, 2 Oct 2002 17:33:24 -0300

Luís, observe a sequência de comandos:

Prompt> b=2
Prompt> a=b
Prompt> echo \$$a
$b
Prompt> eval echo \$$a
2

Qdo eu fiz echo \$$b eu "escapei" o 1o. $ e recebi um $b. Para receber o
valor deste $b é necessário que o comando seja re-executado. Para isso é que
se usa o eval.

Se entendi bem o seu problema, o ??? deveria ser substituído por:
$(eval echo \$$GRP)

Se não for isso avise.

[ ]s,
Julio Cezar Neves
-Eu Apoio o Software Livre-
-I Support Free Software-
* +55 21 2528-7070  /  9853-4044
*address@hidden


> -----Mensagem original-----
> De: Luis Fernando C. Talora [mailto:address@hidden]
> Enviada em: quarta-feira, 2 de outubro de 2002 10:20
> Para: address@hidden
> Assunto: [shell-script] Re: Exibir conteúdo de variável cujo nome está
> em outra veriável
> 
> 
> Não funcionou... Quando eu digito:
> 
> echo $(eval echo '$'$(echo ${PORT} | /usr/bin/tr '[a-z]' '[A-Z]')
> _USERS)
> 
> não aparece nada! Alguma outra sugestão? Eu errando em algum ponto?
> 
> Muito grato!
> 
> []'s
> 
> Luís Fernando C. Talora
> 
> 
> --- Em shell-script@y..., Cassiano Sombrio_Hp 
> <cassiano.sombrio_hp@t...> escreveu
> > Olá Talora,
> > 
> > experimente usar "eval" da seguinte maneira:
> > 
> >     GRP=$(eval echo '$'$(echo ${PORT} | /usr/bin/tr '[a-z]'
> > '[A-Z]')_USERS)
> > 
> > Abs,
> > Cassiano
> > 
> > -----Original Message-----
> > From: lftalora [mailto:talora-listas@t...]
> > Sent: terça-feira, 1 de outubro de 2002 16:48
> > To: shell-script@y...
> > Subject: [shell-script] Exibir conteúdo de variável cujo nome está 
> em
> > outra veriável
> > 
> > 
> > Amigos,
> > 
> > estou elaborando um script de firewall e esbarrei na seguinte 
> > situação:
> > 
> > Tenho uma variável PORTS="telnet http https"
> > 
> > Para casa uma dessas portas, tenho uma variável com os respectivos 
> > usuários:
> >    TELNET_USERS
> >    HTTP_USERS
> >    HTTPS_USERS
> > 
> > Eu tenho ainda o seguinte laço:
> > 
> > for PORT in $PORTS ; do
> >    # Criando uma variavel chamada GRP com o nome do grupo de
> >    # usuarios (convertido para maiusculas) + "_USERS"
> >    # PORT=telnet -> GRP=TELNET_USERS
> >    GRP=$(echo $PORT | /usr/bin/tr '[a-z]' '[A-Z]')"_USERS"
> >    (...)
> > done
> > 
> > Até aqui, tudo OK. O problema está no "(...)" onde existe o 
> seguinte 
> > laço:
> > 
> >    for USERS in ??? ; do
> > 
> > Eu gostaria que ??? fosse o conteúdo da variável cujo nome está 
> > dentro da variável GRP. Se GRP vale TELNET_USERS, eu gostaria que, 
> no 
> > lugar de "???", aparecesse $TELNET_USERS.
> > 
> > Alguém sabe algum meio de fazer isso? Ou então, conhcem um meio 
> mais 
> > prático de fazer tudo isso?
> > 
> > Muito obrigado!
> > 
> > []'s
> > 
> > Talora
> > 
> > 
> > 
> > 
> > --------------------------------------------------------------------
> -
> > 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: shell-script-unsubscribe@y...
> > --------------------------------------------------------------------
> -
> > Esta lista é moderada de acordo com o previsto em
> > http://www.listasdiscussao.cjb.net
> > --------------------------------------------------------------------
> -
> >  
> > 
> > Seu uso do Yahoo! Grupos é sujeito às regras descritas em:
> > http://br.yahoo.com/info/utos.html
> 
> 
> 
> ---------------------------------------------------------------------
> 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.listasdiscussao.cjb.net
---------------------------------------------------------------------
 

Seu uso do Yahoo! Grupos é sujeito às regras descritas em:
http://br.yahoo.com/info/utos.html 



reply via email to

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