[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] Ignorar erros em um laço
From: |
MrBiTS |
Subject: |
Re: [shell-script] Ignorar erros em um laço |
Date: |
Thu, 17 Jul 2008 14:46:43 -0300 |
User-agent: |
Thunderbird 2.0.0.14 (Windows/20080421) |
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
| Realmente, tentei simplificar a pergunta, mas faltaram dados. Segue o
script
| completo.
|
| #!/bin/bash
| NOVA_QUOTA=30720
| for i in `cat perfil0.txt`
| do
| 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
| done
Simplificar nem sempre é o melhor caminho, ainda mais numa descrição de
problemas.
Vejamos. Você havia dito que, quando um arquivo ( $i ) não existe, o
laço é interrompido. Na verdade, nunca teremos um $i sozinho, mas sempre
um user.$i. Nesse caso, se user.$i não existe, a variável $utilizado não
~ terá nenhum valor e a comparação $n_quota_bytes -gt $utilizado dará um
erro e, aí sim, quebrará o laço. Creio ser esse o seu problema. Falto a
mensagem de erro.
Para certificar-se, rode o seu script com um bash -x ./script e
analise/poste o resultado.
Do resto, não há nada que faça o laço ser quebrado. Os comandos mv e sed
não quebram laços quando falham, a não ser que você mande o script fazer
isso explicitamente.
- --
Um abraço
.0. MrBiTs - address@hidden
..0 GnuPG -
http://keys.cardboard.net:11371/pks/lookup?op=get&search=0xAC37715A6DD1F186
000 http://www.mrbits.com.br
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (Cygwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iEYEARECAAYFAkh/hYIACgkQrDdxWm3R8YajywCfTxcoqP0QJA5CyRLIv4XcXThK
MLwAn0jKIBfbwE0/o8yJPQSK4Espe2R3
=LqRt
-----END PGP SIGNATURE-----
Re: [shell-script] Ignorar erros em um laço, Tiago Barcellos Peczenyj, 2008/07/17