Normalmente não gosto muito dessa parte :) já que acho este ramo do
conhecimento excelente para autodidatismo e experimentação.

Vou pegar a linha que você está passando, reescreve-la e inserir alguns
comentários. Talvez fique mais legível.

if [ "$LOG" = "" ];then # se variavel LOG já tem conteúdo, desvia
 
 # define nome do LOG como nome do script ($0) em execução
 LOG=/tmp/${0##*/}.log

 # chama o próprio script, LOG em linha, poderia ter usado antes "export LOG"
 LOG=$LOG $0 $* 2>&1|tee $LOG 
 # $* são todos os parâmetros recebidos por um script em linha de comando

 # encerra, pois o script já foi "rechamado" da forma desejada
 exit 

fi

A diferença de escrita é mera "semântica" tolerada pelo shell.

Espero que tenha ajudado.


------------------------------------------------------------------
>From: Gemayel Alves
>Este codigo funcionou como uma luva, mop vc poderia explicar esta linha para 
que eu e alguns como eu q não entenderam bem o funcionamento possamos entender?
>
>[ $LOG ]||{ LOG=/tmp/${0##*/}.log;LOG=$LOG $0 $* 2>&1|tee $LOG;exit;}



---------------------------------------------------------------------
Esta lista não admite a abordagem de outras liguagens de programação, como 
perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio 
aviso.
---------------------------------------------------------------------
Sair da lista: [EMAIL PROTECTED]
---------------------------------------------------------------------
Esta lista é moderada de acordo com o previsto em 
http://www.listas-discussao.cjb.net
---------------------------------------------------------------------
Servidor Newsgroup da lista: news.gmane.org
Grupo: gmane.org.user-groups.programming.shell.brazil

 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/shell-script/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 

Responder a