exec tee для перенаправления файла создаст процесс bash

exec tee для перенаправления файла создаст процесс bash

скрипт такой:

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

Когда скрипт запущен в bash 7603, строка exec создаст процесс с именем 13069, например:

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

Я запускаю скрипт в pid 7603 bash, pid 13068 - это скрипт, почему там pid 13069

решение1

Дополнительный процесс — это подоболочка, выполняющая tee -a ./test_tee.log. Подтвердите это с помощью pstree -p | grep -B 1 '[t]ee'.

Вы можете указать этой подоболочкезаменятьсебя с tee. Измените соответствующую строку на:

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

Связанный контент