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
