[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] Array dinamico???
From: |
Emerson Domingues Souto |
Subject: |
Re: [shell-script] Array dinamico??? |
Date: |
Fri, 31 Mar 2006 11:29:14 -0300 |
O único problema de usar arquivos é q o conteúdo pode ser modificado por outro
usuário ou pelo mesmo usuário em outra sessao.
Mas com variável o caso é diferente, apenas o próprio usuário e na própria
sessao conseguirá ler e alterar o conteúdo.
Outra vantagem da variável é que o acesso à memória é sempre mais rápido que o
acesso ao disco.
Pode ser que exista alguma vantagem em usar arquivos ao invés de variável e que
eu desconheça, alguem poderia me dizer qual ou quais seriam estas vantagens ?
Emerson Souto
----- Original Message -----
From: Tiago Barcellos Peczenyj
To: address@hidden
Sent: Friday, March 31, 2006 12:40 AM
Subject: Re: [shell-script] Array dinamico???
Cara, eu quando possivel evito usar variaveis em bash.
Acho que existem formas mais interessantes e rápidas.
Por exemplo, se vc tem que gravar o nome de todos os arquivos com
extenção .lis do diretorio /tmp vc pode fazer algo assim
ls /tmp/*.lis > lis.txt
Fiz um exemplo aqui em casa:
$ cat lis.txt
/tmp/aaa.lis
/tmp/bbb.lis
/tmp/ccc.lis
Bom, suponha que chegou um novo arquivo, um eee.lis vc pode fazer um diff
$ diff lis.txt <(ls /tmp/*.lis)
3a4
> /tmp/eee.lis
Ou algo assim
$ grep -v -f lis.txt <(ls /tmp/*.lis)
/tmp/eee.lis
para atualizar a lista basta usar o operador >>
$ grep -v -f lis.txt <(ls /tmp/*.lis) >> lis.txt
Agora se vc insiste mesmo em usar ARRAYS veja o exemplo:
criamos o array
$ ARRAY=( $(ls /tmp/*.lis) )
mostramos todos os elementos
$ echo ${ARRAY[@]}
/tmp/aaa.lis /tmp/bbb.lis /tmp/ccc.lis /tmp/eee.lis
mostramos o numero de elementos
$ echo ${#ARRAY[@]}
4
guardamos o numero na variavel MAX
$ MAX=${#ARRAY[@]}
acrescentamos 1 no valor de MAX
$ let MAX++
informamos um novo elemento no array
$ ARRAY[$MAX]=/tmp/outracoisa.lis
agora apresentamos todos os novos
$ echo ${ARRAY[@]}
/tmp/aaa.lis /tmp/bbb.lis /tmp/ccc.lis /tmp/eee.lis /tmp/outracoisa.lis
Eu acho muito melhor usar arquivos, mas vc pode usar arrays
Comptos
Tiago
On 3/30/06, Rui Dias <address@hidden> wrote:
> Viva!
>
> Sou novo no grupo, estou a precisar de ajuda pois precisava de criar
> um script que me lista-se todos os ficheiros de uma directoria e os
> pude-se percorrer sempre que necessário!
>
> Por exemplo: pretendia ler os ficheiros de extensão .lis, da
> directoria /tmp/ e guardar todos os nomes numa variavel (por exemplo
> um array) de modo que sempre que cheguem mais ficheiros à directoria
> não seja necessário alterar o codigo para percorrer os ficheiros.
>
> Sei que isto é facil, mas não estou a conseguir, se alguem me poder
> dar uma ajuda agradecia muito.
>
> Muito Obrigado.
>
> Rui Dias
>
>
>
>
>
> ---------------------------------------------------------------------
> 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: address@hidden
> ---------------------------------------------------------------------
> 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:
> address@hidden
>
> O uso que você faz do Yahoo! Grupos está sujeito aos Termos do Serviço do
> Yahoo!.
--
Tiago B Peczenyj
Linux User #405772
# cd /pub
# more beer
---------------------------------------------------------------------
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: address@hidden
---------------------------------------------------------------------
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
[As partes desta mensagem que não continham texto foram removidas]