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

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

Re: [shell-script] Exportar Variável??


From: Tiago Barcellos Peczenyj
Subject: Re: [shell-script] Exportar Variável??
Date: Tue, 24 Jan 2006 13:08:24 -0200

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


reply via email to

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