Запустите xterm, выполняющий ваш скрипт, вместо того, чтобы просто запускать ваш скрипт, и добавьте команду read
, например, чтобы остановить вывод и иметь возможность читать.
gnome-terminal -x your_script
Подстановка процессов не обязательно связана с именованными каналами; его можно реализовать с помощью /dev/fd
на платформах, которые это поддерживают.
По крайней мере, с Bash в Linux подстановка процессов выполняется значительно быстрее, чем FIFO. Основываясь на различиях в производительности между конвейерами и заменой процессов , я использовал следующий скрипт для тестирования FIFO:
mkfifo fifo
for i in {1..10000}; do
echo foo bar > fifo &
while read; do
echo $REPLY > /dev/null
done < fifo
done
rm fifo
и в итоге получили время, аналогичное времени, указанному для труб в связанном вопросе.
С Zsh разница в производительности не так значительна, но все же присутствует (примерно на 10% в пользу замены процесса ).
В остальном я не думаю, что есть большая практическая разница. Вы можете использовать FIFO в (некоторых )графических интерфейсах пользователя, в отличие от замены процесса (, за исключением случаев, когда графический интерфейс игнорирует свою команду -строку ). Вы также можете создать FIFO и использовать один из его концов без немедленного подключения другого конца, опять же, в отличие от замещения процесса.