[Ubuntu-PT 8467] Re: Duvida bash: array

Luiz Gustavo Agostinho luiz.gustavo.xd gmail.com
Sábado, 29 de Janeiro de 2011 - 09:45:19 UTC


Seu código esta correto, o que acontece é que é criado um Sub-shell.

Tipo uma função com variáveis locais ( Em C por exemplo)

Dê uma olhada neste link: http://mywiki.wooledge.org/BashFAQ/024

<http://mywiki.wooledge.org/BashFAQ/024>Abraço

Em 28 de janeiro de 2011 23:21, Paulo J. S. Pinhal
<paulojspinhal  gmail.com>escreveu:

> construi uma pequena rotina, para inserir nome de ficheiros (neste caso
> avi) num array, conforme código abaixo:
>
> n=0                      #valores iniciais
> array[1]=10         #apenas para conferir que são alteradas
> array[2]=20         #ciclo while done
> array[3]=30
>
> ls *.avi |
> while read; do
>   n=$((n+1));
>   array[$n]=$REPLY
>   echo $n" / "${array[n]}
> done
>
> echo $n
> for i in $(seq 1 3) #existem apenas 3 files
> do
>   echo -n "array[$i] = "; echo ${array[$i]}
> done
>
> acontecem situações que não entendo: não consigo ter acesso (fora do ciclo
> while..end) às variáveis "n" e array[n]. o que acontece é que após aquele
> ciclo as variáveis indicadas retomam os valores iniciais.
>
> como posso ter acesso aos valores atribuidos dentro do ciclo while..done?
> os meus conhecimentos de bash são muito limitados. alguém me pode ajudar?
>
> desde já os meus agradecimentos.
>
> --
> ubuntu-pt mailing list
> ubuntu-pt  lists.ubuntu.com
> https://lists.ubuntu.com/mailman/listinfo/ubuntu-pt
>



-- 
Luiz Gustavo de Oliveira Agostinho


Mais informações acerca da lista ubuntu-pt