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)