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

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

Re: [shell-script] Definindo cópia padrão do stdout para um arquivo em k


From: Julio C. Neves
Subject: Re: [shell-script] Definindo cópia padrão do stdout para um arquivo em korn shell
Date: Fri, 15 Jul 2011 21:38:01 -0300

Fala Michel,
antes de tentar entender o seu problema, me tire uma dúvida para ver se o
tee não é mesmo viável:

  » supondo que seu script se chame scr1.sh, não seria possível fazer o
seguinte?

$ mv scr1.sh scr2.sh
$ cat > scr1.sh
. scr2.sh | tee -a arq
chmod +x scr1.sh

Dessa maneira, os usuários continuariam a usar o scr1.sh, só que agora com o
tee e nem tomariam conhecimento disso.

Cordialmente,

Julio Neves
*Quer programar bem em Shell?
*

*Use este endereço de e-mail, o Skype ou ☎ (21)8112-9988 ☎*

*
*

**

*
*
My profiles: [image: Twitter] <http://twitter.com/juliobash>
Contact me: [image: Skype] julioneves1


Em 15 de julho de 2011 09:39, Michel <address@hidden> escreveu:

> **
>
>
> Bom dia senhores
>
> Gostaria de realizar a cópia do standrd-output (de todo um script) para um
> arquivo em korn-shell.
>
> Tem um script muito grande (+ de mil linhas) e a pessoa que o criou não o
> fez com rotina de log, o script apenas joga o resultado na tela (output
> muito grande..)
> Gostaria de copiar todo o output do mesmo para um arquivo, com um comando
> no
> inicio do script, sem ter que usar o " | tee *<arquivo>*" em sua chamada.
>
> Sei que podria resolver isso usando o | tee na chamada do mesmo, mas não
> posso contar com a boa vontade de todos os usuários que utilizarão o
> script.
> Queria me precaver dessa falha, forçando o script internamente a auto
> copiar
> o stdout para um arquivo.
>
> Ou seja, não quero um simples redirecionamento ( >> arquivo ), pois o
> usuário ainda precisa do output na tela, e tb não gostaria de ter que
> editar
> o script inteiro (mais de mil linhas) pra colocar o | tee em comando por
> comando.
>
> Eu achei uma solução em bash, que fuciona, mas não consegui faze-la
> funcionar em ksh (AIX)
>
> Soluçao em bash:
>
> # Copia todo o stdout para um arquivo std.out
> exec > >(tee std.out)
> # faz o mesmo para o sdterr
> exec 2>&1
>
> echo "iniciando script ... `date`"
> echo "comando 1..."
> echo "comando 2..."
> echo "error cmd 2" >&2
>
> ---------------------------------
>
> Depois de executado o script, voi-lá, temos todo o output da tela,
> replicado
> no arquivo, mas sem o uso do tee em sua chamada de execução.
> #> cat std.out
> iniciando script ... Fri Jul 15 09:19:57 BRT 2011
> comando 1...
> comando 2...
> error cmd 2
>
> --
> Michel I. Moreira
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
>


[As partes desta mensagem que não continham texto foram removidas]



reply via email to

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