[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] ajuda
From: |
Wagner Macedo |
Subject: |
Re: [shell-script] ajuda |
Date: |
Wed, 13 Apr 2011 21:41:29 -0300 |
Grande Júlio e suas aulas :)
Mas, só um detalhe no que você postou, Júlio, para quem testar não ficar
doido procurando o bug:
Ele usou [ $? -ne 0 ], portando o comando deve ser ! fuser -k $f, com a
exclamação, para negar o resultado.
--
Wagner Macedo
2011/4/13 Julio C. Neves <address@hidden>
>
>
> Fala Adolfo,
> sempre que vc olhar um script e existir um $? desconfie que não está
> otimizado. 90% das vezes não está e a causa é a idêntica à que vc fez.
>
> No shell o if não testa condição. Quem testa condição é o cmd test, cujo
> alias vc usou ([ $? -ne 0 ] é exatamente o mesmo que test $? -ne 0). O if
> do
> shell testa comandos e foi o que vc fez: testou o cmd test. Ficaria mais
> otimizado se vc testasse direto o fuser, da seguinte forma:
>
> for f in *
> do
> if fuser -k $f
>
> then
> echo Arquivo $f nao esta em uso ## Coloque aqui o comando
> para compactar.
> else
> echo Arquivo $f esta em uso
> fi
> done
>
> Resolvi escrever isso não foi para te corrigir, mas para dar uma dica na
> lista, já que é muito normal se ver esta construção pouco elegante.
>
> Para vc testar o que estou falando, execute as linhas de comandos a seguir
> em um diretório que tenha muitos arquivos e observe a diferença entre os
> tempos:
>
> time for f in *
> do
> if fuser -k $f
> then
> :
> else
> :
> fi
> done
> ======================================
> time for f in *
>
> do
> fuser -k $f
> if [ $? -ne 0 ]
> then
> :
> else
> :
> fi
> done
>
> Abraços,
>
> Julio
>
[As partes desta mensagem que não continham texto foram removidas]