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

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

Re: [shell-script] Array


From: Julio C. Neves
Subject: Re: [shell-script] Array
Date: Sun, 11 Jan 2009 10:39:53 -0200

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>,
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 <address@hidden>

> 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 <address@hidden>
>
>   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 <address@hidden <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]



reply via email to

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