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

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

Re: [shell-script] duvida com if


From:
Subject: Re: [shell-script] duvida com if
Date: Fri, 19 May 2006 17:19:23 -0300

Muito obrigado, funciona legal....


Eu fiz esse aqui tb ta funcionando  tb, mais esta correto a forma de
pensar/fazer?


#/bin/bash

diretorio=/home/servidor
excluidos=(mp3 videos contabilidade)

for DIRETORIOS in `ls -l $diretorio | grep "^d"  | awk '{print $8}'`; do
  for (( i = 0 ; i < ${#excluidos[*]} ; i++ ))
  do
    if [ $DIRETORIOS = ${excluidos[$i]} ]; then
      continue 2
    fi
  done
  tar -jcv "$diretorio""$DIRETORIOS" -f /root/backup_$DIRETORIOS.tar.bz2
done




Em 19/05/06, Humberto Pereira <address@hidden>
escreveu:
>
> address@hidden wrote:
> > Oi Humberto,
> >
> > Ainda nao deu certo... ele esta pegando todos os diretorios inclusive os
> que
> > estao na variavel $excluidos.
> >
> > Uma pergunta, eu nao teria que comparar $files com cada pedaco do
> > $excluidos, tipo separar a string em partes e comparar com o $files?
>
> Mas eh isso q o script faz.
> Comentando o script:
>
> >> #!/bin/bash
> >>
> >>
> >> diretorio=/home/servidor/
> >> excluidos="mp3 videos fotos" # isso seria nome de diretorios
>
> Pega todos os arquivos em $diretorio
>
> >> for file in $diretorio/* ; do
> Ve se o arquivo eh um diretorio
> >>       if [ -d "$file" ]; then
> Pega todas as palavras em $excluidos
>
> >>             for exc in $excluidos ; do
> Compara cada palavra ($exc) com o diretorio ($file)
> >>                   if [ "$file" = "$exc" ] ; then
> Os 2 sao iguais, entao volta pro comeco do loop + externo.
> >>                         continue 2
> >>                   fi
> >>             done
> Eh um diretorio e nao esta na lista, entao compacta.
>
> >>             tar -jcv "$diretorio$file" -f /root/backup_$file.tar.bz2
> >>       fi
> >> done
>
> Mas tem um detalhe q eu esqueci. Debugando ele aqui achei o erro (isso q
> dar escrever sem testar)
>
> A variavel $file tem o caminho completo do diretorio (por ex.
> /home/servidor/mp3).
>
> Entao, vc pode pegar o nome dele usando basename. Ficaria assim
>
>
>
> #!/bin/bash
>
> diretorio=/home/servidor/
> excluidos="mp3 videos fotos" # isso seria nome de diretorios
>
> #Pega todos os arquivos em $diretorio
>
> for file in $diretorio/* ; do
>       #Ve se o arquivo eh um diretorio
>       if [ -d "$file" ]; then
>             #remove o caminho completo do diretorio
>             f=`basename $file`
>             #Pega todas as palavras em $excluidos
>
>             for exc in $excluidos ; do
>                   #Compara cada palavra ($exc)
>                   # com o diretorio ($f)
>                   if [ "$f" = "$exc" ] ; then
>                         #Os 2 sao iguais, entao volta
>                         #pro comeco do loop + externo.
>                         continue 2
>                   fi
>             done
>             #Eh um diretorio e nao esta na lista, entao compacta.
>             tar -jcv "$diretorio$f" -f /root/backup_$f.tar.bz2
>       fi
> done
>
>
> Espero q isso resolva...
> []s
> Humberto Pereira
>
>
>
>  ---------------------------------------------------------------------
> 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
>
>
>
>
>  *Yahoo! Grupos, um serviço oferecido por:*  PUBLICIDADE
> <http://br.ard.yahoo.com/SIG=12f91o74v/M=396559.7942981.9477179.2369893/D=brclubs/S=2137111254:HM/Y=BR/EXP=1148075816/A=3714796/R=2/id=noscript/SIG=1554ctaqg/*http://lt.dell.com/lt/lt.aspx?CID=13048&LID=341557&DGC=BA&DGSeg=DHS&DURL=http://www1.la.dell.com/content/products/category.aspx/notebooks?c%3dbr%26l%3dpt%26s%3ddhs>
> ------------------------------
> *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<address@hidden?subject=Unsubscribe>
>
>    - O uso que você faz do Yahoo! Grupos está sujeito aos Termos do
>    Serviço do Yahoo! <http://br.yahoo.com/info/utos.html>.
>
>


[As partes desta mensagem que não continham texto foram removidas]



reply via email to

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