У меня есть этот скрипт:
mkfifo foo
exec 3<>foo
cat <&3 | while read line; do echo " [prepend] $line"; done &
echo "foo" >&3
echo "bar" >&3
echo "baz" >&3
Я просто пытаюсь добавить строку к каждой строке stdout / stderr каждой команды.
Проблема в том, что для именованного канала будет EOF, поэтому команда cat будет быстро завершена.
Есть ли какой-нибудь файл, который я могу использовать вместо именованного канала, который никогда не будет испытывать EOF? Так что команда cat, использованная против нее, в принципе никогда не завершится?
Я мог бы использовать tail -f
вместо cat
, но я считаю, что tail -f
иногда бывает вялым.