[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] Ignorar erros em um laço
From: |
Tiago Barcellos Peczenyj |
Subject: |
Re: [shell-script] Ignorar erros em um laço |
Date: |
Thu, 17 Jul 2008 15:33:15 -0300 |
Vejamos
$ ls -1
arquivo.flv
CVS
lib
testes_funcionais.pl
$ cat /tmp/list
arquivo.flv
CVS
xxxxxx
lib
testes_funcionais.pl
lalala
$ xargs ls -d1 < /tmp/list 2>&-
arquivo.flv
CVS
lib
testes_funcionais.pl
O que eu fiz: usei o ls para filtrar os arquivos que existem no
diretorio corrente.
se a minha lista tiver os caminhos completos dos arquivos, eu posso
filtrar a lista sem ter que fazer testes dentro do laço, o que pode
ser custoso.
2008/7/17 César Vianna <address@hidden>:
> Exato. Segue o erro.
>
> $ bash -x ./script.sh
> ++ cat perfil0.txt
> + for i in '`cat perfil0.txt`'
> ++ head -1 /var/lib/imap/quota/q/user.a
> head: não foi possível abrir `/var/lib/imap/quota/q/user.a' para leitura:
> Arquivo ou diretório não encontrado
> + utilizado=
> ./script.sh: line 6: *1024: syntax error: operand expected (error token is
> "*1024")
>
> Acabei colocando mais um test. Aumentou o tempo de execução, mas funcionou.
>
> #!/bin/bash
> NOVA_QUOTA=30720
> for i in `cat perfil0.txt`
> do
> if [ -e /var/lib/imap/quota/q/user.$i ]
> then
> utilizado=`head -1 /var/lib/imap/quota/q/user.$i`
> n_quota_bytes=$(($NOVA_QUOTA*1024))
> if [ $n_quota_bytes -gt $utilizado ]
> then
> mv /var/lib/imap/quota/q/user.$i
> /var/lib/imap/quota/q/user.$i.old
> sed "2s/.*/$NOVA_QUOTA/"
> /var/lib/imap/quota/q/user.$i.old > /var/lib/imap/quota/q/user.$i;chown
> cyrus.mail /var/lib/imap/quota/q/user.$i
> else
> echo $i - $(($utilizado/1024/1024)) >>
> quotas-cheias.txt
> fi
> fi
> done
Re: [shell-script] Ignorar erros em um laço, Tiago Barcellos Peczenyj, 2008/07/17