La camiseta ejecutiva para redirigir el archivo creará un proceso bash.

La camiseta ejecutiva para redirigir el archivo creará un proceso bash.

el guión así:

exec &> >(tee -a ./test_tee.log)
ping $1

cuando el script se ejecuta en bash 7603, la línea ejecutiva creará un proceso cuyo nombre es 13069, como el siguiente:

root     13068  7603  0 17:15 pts/5    00:00:00 bash
root     13069 13068  0 17:15 pts/5    00:00:00 bash // where does it come from
root     13070 13068  0 17:15 pts/5    00:00:00 ping google.com
root     13071 13069  0 17:15 pts/5    00:00:00 tee -a ./test_tee.log

Ejecuto el script en pid 7603 bash, el pid 13068 es el script, ¿por qué aparece el pid 13069?

Respuesta1

El proceso adicional es una subcapa que se ejecuta tee -a ./test_tee.log. Confirma esto con pstree -p | grep -B 1 '[t]ee'.

Puedes decirle a esta subcapa quereemplazarmismo con tee. Cambie la línea relevante a:

exec &> >(exec tee -a ./test_tee.log)

información relacionada