Eu tenho um script bash com vários comandos “echo STRING”. Gostaria de registrar STRING com o logger, mas ainda imprimi-lo no stdout. echo STRING | logger
obviamente não faz isso.
EDITAR: echo STRING | tee >(logger)
faz isso. >(COMMAND) é uma substituição de processo, substitui a entrada do processo.
Normalmente escrevo uma função de registro; algo como
Ele oferece flexibilidade sobre o que você deseja registrar e pode até permitir que você faça coisas como adicionar um carimbo de data/hora na frente das linhas, se desejar.
No bash você deve ser capaz de fazer isso:
Em seguida, siga
logger
como você fez antes.Se você quiser implementar isso por meio de uma função de registro personalizada, conforme sugerido por Stephen Harris, isso poderia ser feito da seguinte forma: