[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[shell-script] Formatação nos scripts
From: |
Renato Machado |
Subject: |
[shell-script] Formatação nos scripts |
Date: |
Sun, 3 Aug 2008 08:16:09 -0700 (PDT) |
olá amigos...
este tema provocou um saudável fluxo de sugestões...
acabei fazendo algumas buscas e eis que encontrei algo
que talvez sirva para cada vez mais melhorarmos nosso estilo,
buscando sempre um código clean, profissa... ;)
Pois como diria Vinícius: "a beleza é fundamental".
Vejam que legal...
Créditos: http://codare.net/category/shell/
Shell: Agrupar comandos para log
Ao fazer log da execução de um programa ou compor um arquivo de texto que
agrupe a saída de vários comandos, é comum ver a seguinte estrutura ser
utilizada:comando-1 >> arquivo
comando-2 >> arquivo
comando-3 >> arquivo
Tudo bem, isso funciona. Mas há uma maneira mais prática e eficiente de se
fazer o mesmo, que é agrupar todos os comandos e redirecioná-los para o arquivo
de log uma única vez:(comando-1 ; comando-2 ; comando-3) >> arquivo
Basta colocar todos os comandos dentro de um par de parênteses
para que o shell os encare como um grupo único.
Veja um exemplo da aplicação dessa técnica e
perceba uma outra vantagem: o script fica mais legível.
Log Ineficiente
echo "Iniciando em $(date)" >> /tmp/log.txt
rm -vr /tmp/becape/* >> /tmp/log.txt
~/bin/meu-becape.sh --tudo >> /tmp/log.txt
echo "Tamanho do becape: $(du -hs /tmp/becape)" >> /tmp/log.txt
echo "Terminado em $(date)" >> /tmp/log.txt
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.
RMachado
Novos endereços, o Yahoo! que você conhece. Crie um email novo com a sua
cara @ymail.com ou @rocketmail.com.
http://br.new.mail.yahoo.com/addresses
[As partes desta mensagem que não continham texto foram removidas]
- [shell-script] Formatação nos scripts,
Renato Machado <=