Я намагаюся зрозуміти названі труби в контексті цього конкретного прикладу.
Я набираю <(ls -l)свій термінал і отримую вихід як bash: /dev/fd/63: Permission denied.
Якщо я набираю cat <(ls -l), я міг би бачити вміст каталогу. Якщо я замінити catз echo, я думаю , що я отримую ім'я терміналу (або це?).
echo <(ls -l)дає вихід як /dev/fd/63.
Також цей приклад для мене є незрозумілим.
ls -l <(echo "Whatever")
lr-x------ 1 root root 64 Sep 17 13:18 /dev/fd/63 -> pipe:[48078752]
Однак, якщо я даю, ls -l <()він перераховує мені вміст каталогу.
Що відбувається у випадку названої труби?
mkfifoстворюється лише названа труба без будь-якого вмісту. Тому вам потрібно написати це самостійно (наприкладmkfifo mypipe; ls > mypipe). І так, запис у трубу буде блокований, поки якийсь процес не зчитується з труби.