escreve da saída padrão para arquivos diferentes (sem impressão de tela)

0

Como escrever $ Log_general para Log1 e Log2 no tempo, sem imprimir nada na tela?

observação: os arquivos Log1 e Log2 precisam ser atualizados separadamente do $ Log_general, não quero copiar o Log1 para o Log2 !!

Eu tentei o seguinte, mas apenas Log2 foi atualizado

 echo $Log_general 1>Log1 1>Log2

ou

./my_script.sh 1>Log1 1>Log2

e com o seguinte, houve o problema de que $Log_general output aparece na tela enquanto eu pretendo gravar apenas nos arquivos Log1 e Log2 :

 echo  $Log_general | tee -a Log1 Log2
    
por jennifer 19.10.2010 / 13:55

2 respostas

1

Você deve poder usar o comando tee para canalizar a saída primeiro para um arquivo e stdout e, em seguida, o stdout para o segundo arquivo. Algo como:

echo $Log_general | tee Log1 > Log2

Editar:

Eu não vi sua edição Jennifer antes de postar, mas o uso acima não sai na tela para mim (estou rodando cygwin, ao invés de um terminal Linux - espero que a saída seja a mesma)

    
por 19.10.2010 / 14:21
1
./bash.sh | tee -a /path/to/firstfile 

Se você estiver tentando anexar a saída de um arquivo de script bash a um único arquivo, o código acima funcionará.

./bash.sh | tee -a /path/to/firstfile |tee -a /path/to/secondfile

O segundo bit de código deve funcionar para gravar a mesma saída em dois arquivos diferentes. Estou usando o Xubuntu e funciona para mim.

    
por 03.02.2012 / 23:37

Tags