Когда STDOUT
процесса Perl не подключен к tty, автоматическая очистка отключена.Это тот случай, когда передается вывод процесса Perl на cat
вместо его вывода на терминал.Это приводит к зависанию команды cat
в ожидании ввода от процесса Perl.
Это можно исправить, включив автоматическую очистку для STDOUT:
cat ~/myfifo | perl -ane 'STDOUT->autoflush(1); print "testa\n"' | cat
или вы можете использовать unbuffer
команда:
cat ~/myfifo | unbuffer -p perl -ane 'print "testa\n"' | cat