Ola,
vc não consegue porque, provavelmente, a extrutura
cat arquivo | while ... ; do ... done
é feita em um subshell. como o shell faz passagem de parâmetros por
cópia, e não por referência, vc cria variaveis dentro do sub-shell e,
ao seu fim, elas são perdidas com to termino do sub-shell. vc só
consegue exportar "pra dentro", isto é, para todos os sub-shells que
vc abre, não consegue voltar.
por que vc precisa armazenar um arquivo em uma matriz ? vc pode pegar
uma linha específica do arquivo assim:
head -X arquivo | tail -1
vai pegar a linha X, para saber o numero de linhas vc pode usar o `wc
-l arquivo` por exemplo. São muito mais rapidos e praticos do que usar
matrizes em bash, IMHO.
Se vc insiste em gravar em uma matriz - pode ser util em algum caso -
vc pode usar esta extrutura :
MATRIZ=( $(cat arquivo) )
ps: talvez tenha que transformar o IFS em '\n' apenas... no cygwin
aparentemente funciona assim, não tive tempo de testar melhor em outro
ambiente.
Abraços
Em 24/01/06, vmlinuzbr <[EMAIL PROTECTED]> escreveu:
> Pessoal, tenho o seguinte trecho de script:
>
> > i=1
> > cat tags.db | \
> > while read line
> > do
> > TG[$i]=$line
> > i=`expr $i + 1`
> > done
> > echo ${TG[2]}
>
> Ele lê o arquivo tags.db linha por linha e armazena cada linha num
> elemento da matriz TG. Porém fora deste loop não consigo acessar os
> elementos dela(a linha do echo por exemplo). Tentei exportar ela mas
> não funcionou. Como fazer?
>
--
Tiago B Peczenyj
Linux User #405772
echo 435991959574767208964049173891616024402182829083447460457482P | dc
---------------------------------------------------------------------
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: [EMAIL PROTECTED]
---------------------------------------------------------------------
Esta lista é moderada de acordo com o previsto em
http://www.listas-discussao.cjb.net
---------------------------------------------------------------------
Servidor Newsgroup da lista: news.gmane.org
Grupo: gmane.org.user-groups.programming.shell.brazil
Links do Yahoo! Grupos
<*> Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/shell-script/
<*> Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]
<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html