Oi MrBiTS,

no exemplo citado, acho que a enfase era sobre o uso de parentesis no 
comando "(" ")"
<code>
(
echo1
) >> arq.log
</code>

Em todos casos, essa parte que chamou minha atenção e gostaria de 
entender melhor:
-> isso vai executar todo o conteúdo ds parentesis e depois jogar a 
saída para o arquivo?
-> roda tudo num outro environment?

grato,
Alain
PS: respondi no topo pois acho que esta mensagem é independente da 
anterior e a usa apens como referencia...

> 
> | Log Eficiente
> | (
> | echo "Iniciando em $(date)"
> | rm -vr /tmp/becape/*
> | ~/bin/meu-becape.sh --tudo
> | echo "Tamanho do becape: $(du -hs /tmp/becape)"
> | echo "Terminado em $(date)"
> | ) >> /tmp/log.txt
> |
> | simples assim ? AFFFF... KISS na veia...vou reescrever muito... :(
> | algum mestre pode apontar algum efeito colateral desastroso desta técnica ?
> | Obrigado.
> 
> Desatroso, não, mas eu acho mais elegante fazer assim:
> 
> <code>
> SCRIPTNAME=$(basename $0 .sh)
> TIMESTAMP=$(date +%H%M%S)
> TRACEFILE=z2_${SCRIPTNAME}.trc
> if [ -f "${TRACEFILE}" ]; then
> ~        # Movendo Log para ${TRACEFILE}_${TIMESTAMP}
> ~        mv ${TRACEFILE} ${TRACEFILE}_${TIMESTAMP}
> fi
> echo "LOG: ${TRACEFILE}"
> exec 1>> ${TRACEFILE} 2>&1
> </code>
> 
> Simplesmente tudo o que o script fizer do exec para frente será armazenado em 
> ${TRACEFILE}. Além disso, o log anterior será salvo,
> para efeitos de comparação.
> 
> O ideal é que esse trecho de código seja o primeiro a ser executado. Para 
> isso, acostume-se a utilizar templates e insira isso neles.
> 
> Colocando esse trecho no início dos seus scripts e utilizando um comando 
> simples para substituir tudo o que possuir >> e terminar
> com .log ( por exemplo ), acredito que você diminua a reescrita do seu 
> programa.
> 
> O vim possui um plugin chamado bash-support, que já possui alguns templates 
> prontos. Vale o estudo.
> 

Responder a