escreve STDOUT e STDERR para a tela AND file, em ordem, enquanto sinaliza as linhas STDERR para que possam ser facilmente mapeadas

0

Eu já vi várias perguntas como essa, mas todas são antigas e nenhuma tem boas respostas - apenas hacks feios que não fazem o que se quer. Eu pensei em 2018 e deve haver uma boa solução que funcione.

O objetivo / desejo é executar um script de comando e fazer tudo isso:

  • escreva STDOUT e STDERR no ecrã, pela ordem em que são gerados
  • escreva STDOUT e STDERR em um arquivo, na ordem em que são gerados
  • "transforma" a saída STDERR para prefixar ou pósfixar uma sequência definida pelo usuário para que ela possa ser facilmente / rapidamente inserida no arquivo

Para exemplo , se eu tiver um script assim:

#!/bin/bash

echo "001"
echo "002" >&2
echo "003" >&2
echo "004"
echo "005"
echo "006"
echo "007" >&2

(Note que o >&2 é apenas para forçar a escrita para STDERR . Na realidade, o comando que está sendo executado escreveria erro para STDERR .)

Quando executo o script, isso é o que devo ver na tela:

$ ./test
001
ERROR: 002
ERROR: 003
004
005
006
ERROR: 007

E isso é o que eu devo ver no arquivo:

$ cat out
001
ERROR: 002
ERROR: 003
004
005
006
ERROR: 007
    
por IMTheNachoMan 18.10.2018 / 04:43

0 respostas