Solução simples e marota:
utilizado=1
utilizado=`head -1 /var/lib/imap/quota/q/user.$i`
n_quota_bytes=$((0${NOVA_QUOTA}*1024))viu o "0" ali ? O teu erro ta no $((*1024)) pq se o arquivo na o existe, nao tem valo de $NOVA_QUOTA e ai acontece issoa ai em cima.. Poe um zero, o resultado da operação vai ser zero e vai ser menor que o utilizado. -- Flavio do Carmo Junior aka waKKu 2008/7/17 César Vianna <[EMAIL PROTECTED]>: > 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 > > 2008/7/17 MrBiTS <[EMAIL PROTECTED]>: > >> -----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 - [EMAIL PROTECTED] <mrbits%40linuxmasters.info> >> ..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----- >> >> > > -- > César Vianna > ------------------- > "Talvez porque eu pense demais ou sonhe demais, o certo é que não distingo > entre a realidade que existe e o sonho, que é a realidade que não existe." > Fernando Pessoa > > [As partes desta mensagem que não continham texto foram removidas] > >
