shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [shell-script] Impressão sem deixar de mostrar resultado.


From: Gemayel Alves
Subject: RE: [shell-script] Impressão sem deixar de mostrar resultado.
Date: Sat, 26 Jan 2008 15:40:43 +0000

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;}

----------------------------------------
> To: address@hidden
> From: address@hidden
> Date: Fri, 25 Jan 2008 22:42:54 -0200
> Subject: Re: [shell-script] Impressão sem deixar de mostrar resultado.
> 
> Certamente há muitas formas de fazer isso. Vou colocar duas para estilos de 
> comando diferenciados.
> 
> A primeira parece mais alinhada com o que foi pedido:
> no topo do script se insere a linha:
>  . log
> o source log poderia ser assim:
> [ $LOG ]||{ LOG=/tmp/${0##*/}.log;LOG=$LOG $0 $* 2>&1|tee $LOG;exit;}
> É só isso, o script é chamado normalmente.
> 
> A segunda permite ligar ou desligar o log na própria linha de comando:
> o script log seria:
> LOG=/tmp/${1##*/}.log;$* 2>&1|tee $LOG
> e o script alvo permanece inalterado.
> Se o script é chamado com "scri p1 p2", para fazer o registro seria chamado
> com "log scri p1 p2".
> 
> Cuidar para que "log" esteja em ponto adequado no PATH ou usar caminho
> completo. Dependendo da complexidade dos scripts, redirecionamentos, como 
> 2>&1,
> podem trazer problemas.
> 
> 
> 
> ------------------------------------------------------------------
>>From: Gemayel Alves
>>preciso salvar a saida de comandos em arquivo mas sem deixar de mostrar o 
> resultado na tela, ja tentei o tee mas eu precisaria executar
>  ./script.sh |tee log.log eu queria outra maneira de fazer isso se possivel 
> introduzir a solucao tee dentro do ./script.sh
> 
> 
> 
> ---------------------------------------------------------------------
> 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: address@hidden
> ---------------------------------------------------------------------
> 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:
>     address@hidden
> 
>  O uso que você faz do Yahoo! Grupos está sujeito aos:
>     http://br.yahoo.com/info/utos.html
> 
>  

_________________________________________________________________
Receba GRÁTIS as mensagens do Messenger no seu celular quando você estiver 
offline. Conheça  o MSN Mobile!
http://mobile.live.com/signup/signup2.aspx?lc=pt-br
>From address@hidden Sat Jan 26 09:02:30 2008
Return-Path: <address@hidden>
X-Sender: address@hidden
X-Apparently-To: address@hidden
X-Received: (qmail 14617 invoked from network); 26 Jan 2008 17:02:29 -0000
X-Received: from unknown (66.218.66.72)
  by m49.grp.scd.yahoo.com with QMQP; 26 Jan 2008 17:02:29 -0000
X-Received: from unknown (HELO an-out-0708.google.com) (209.85.132.245)
  by mta14.grp.scd.yahoo.com with SMTP; 26 Jan 2008 17:02:29 -0000
X-Received: by an-out-0708.google.com with SMTP id b15so277816ana.112
        for <address@hidden>; Sat, 26 Jan 2008 09:02:28 -0800 (PST)
X-Received: by 10.100.202.9 with SMTP id z9mr7235971anf.42.1201366948190;
        Sat, 26 Jan 2008 09:02:28 -0800 (PST)
Return-Path: <address@hidden>
X-Received: from localhost ( [201.86.26.237])
        by mx.google.com with ESMTPS id d22sm4634569and.0.2008.01.26.09.02.26
        (version=SSLv3 cipher=OTHER);
        Sat, 26 Jan 2008 09:02:27 -0800 (PST)
Date: Sat, 26 Jan 2008 14:44:53 -0200
To: <address@hidden>
Message-ID: <address@hidden>
X-Originating-IP: 209.85.132.245
X-eGroups-Msg-Info: 1:12:0:0:0
From: "mop" <address@hidden>
Subject: 
=?iso-8859-1?Q?RE:_[shell-script]_Impressão_sem_deixar_de_mostrar_resul?X-Yahoo-Group-Post:
 member; u04455233

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;}



reply via email to

[Prev in Thread] Current Thread [Next in Thread]