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

[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]



reply via email to

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