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