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