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

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


reply via email to

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