Júlio, exatamente isso, e obrigado por este link, explicou ALGUMAS dúvidas.

Forte abraço

Julio C. Neves disse:
> 
> 
> Rafael,
> me esqueci de colocar no e-mail que a teoria necessária para entender, está
> aqui 
> <http://wiki.softwarelivre.org/TWikiBar/TWikiBarPapo010#O_comando_eval 
> <http://wiki.softwarelivre.org/TWikiBar/TWikiBarPapo010#O_comando_eval>>,
> escrita em português e cheio de exemplos.
> -- 
> Abração,
> Julio
> *Cursos de Shell e Zenity nos finais de semana:
> - Em SP ligue (11) 2125-4747;
> - Em DF ligue (61) 3223-3000;
> - Turmas fechadas em outras cidades ligue (21) 8112-9988
> *
> 2009/1/11 Julio C. Neves <[email protected] 
> <mailto:julioneves%40openoffice.org>>
> 
>  > Fala Rafael,
>  > Se vc está sob o informal Bash, a melhor sintaxe é:
>  >
>  > set_filial()
>  > {
>  > FILIAL=$(tr a-z A-Z <<< $1)
>  > echo Setando filial $(eval echo \${$FILIAL'[...@]'})
>  > }
>  >
>  > Sob o ksh (um interpretador de terno ;), deve-se fazer:
>  >
>  > set_filial()
>  > {
>  > FILIAL=$(echo $1 | tr '[a-z]' '[A-Z]')
>  > echo Setando filial $(eval echo \${$FILIAL'[...@]'})
>  > }
>  >
>  > O que vc está fazendo é uma indireção, isto é, vc quer listar uma 
> variável
>  > que está dentro de outra (equivale a um ponteiro apontando para outro
>  > ponteiro). Para isso o shell precisa de dar duas passadas no cmd. Na 
> 1a ele
>  > resolve uma variável e na segunda resolve a expressão.
>  > --
>  > Abração,
>  > Julio
>  > Cursos de Shell e Zenity nos finais de semana:
>  > - Em SP ligue (11) 2125-4747;
>  > - Em DF ligue (61) 3223-3000;
>  > - Turmas fechadas em outras cidades ligue (21) 8112-9988
>  >
>  > 2009/1/11 Rafael Dutra <[email protected] 
> <mailto:raffaeldutra%40gmail.com>>
>  >
>  > Boa noite.
>  >>
>  >> Tenho uma dúvida em relação a array.
>  >>
>  >> Tenho por exemplo.
>  >> BAGE=("bage" "10.10.8.5" "10.10.8.1")
>  >> ALEGRETE=("alegrete" "10.10.12.5" "10.10.12.1")
>  >> CAPAO_DO_LEAO=("capao_do_leao" "10.10.16.5" "10.10.16.1")
>  >>
>  >> e a função set_filial
>  >>
>  >> set_filial()
>  >> {
>  >> FILIAL=$(echo $1 | tr [a-z] [A-Z])
>  >> echo "Setando filial ${FILIAL[1]}"
>  >> }
>  >>
>  >> em linha de comando, eu passo por parâmetro desta maneira:
>  >> ./redes -f bage
>  >>
>  >> onde -f chama a função set_filial e bage eu transformo em para 
> maiusculo.
>  >>
>  >> O que não estou conseguindo é transformar o meu segundo parametro em
>  >> variável para ser chamada como tal no array.
>  >>
>  >> Se eu colocar no lugar de FILIAL - BAGE por exemplo, funciona
>  >> perfeitamente, gostaria de saber a explicação, e se possível, sugestões.
>  >>
>  >> Obrigado.
>  >>
>  >> --
>  >> cat << EOT
>  >>
>  >> Rafael Dutra <[email protected] 
> <mailto:raffaeldutra%40gmail.com> <raffaeldutra%40gmail.com>>
>  >> Estrela - RS - Brasil
>  >> Linux user #376.904
>  >> Tel. +55 51 93068575
>  >> echo 1244394795515721490698P | dc
>  >> # while true; do beer + beer; done
>  >>
>  >> EOT
>  >>
>  >>
>  >
>  >
>  >
>  >
>  >
> 
> [As partes desta mensagem que não continham texto foram removidas]
> 
> 

-- 
cat << EOT

Rafael Dutra <[email protected]>
Estrela - RS - Brasil
Linux user #376.904
Tel. +55 51 93068575
echo 1244394795515721490698P | dc
# while true; do beer + beer; done

EOT

Responder a