[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