[118687] Короче говоря, его нет.
В длину:
В Линуксе есть 2 типа труб, названных трубами (aka, fifo) и обычными трубами.
Названные трубы создаются с помощью [119088]mkfifo[119089] ([119090]man 3 mkfifo[119091]) системного вызова. Именованные каналы существуют в виде файлов в файловой системе. Один процесс открывает его для чтения, а другой для записи.
Так как они берут дескриптор файла, они появляются в [119096]/proc/PID/fd/[119097]. Но так как они нигде не существуют как настоящий файл, запись в [119098]/proc/PID/fd/[119099] должна сделать немного магии. Таким образом, в основном, труба становится представлена как сим-ссылка с фальшивой мишенью. Когда вы открываете сим-ссылку, ядро действительно открывает канал, который представлен сим-ссылкой. Но так как это симлинк, и у симлинков есть цели, все, что попытается разыменовать симлинк, вернет его обратно. Просто эта цель не указывает на действительный файл.
По запросу. Следующее должно работать
[[ $(ps -ocommand= -p $PPID | awk '{print $1}') = script ]] || { script -f /var/log/shellog/$USER-$(date -u +%Y.%m.%d-%H:%M:%S).${HOSTNAME:-$(hostname)}.$$.log && exit ;}