Answers:
您可能正在寻找命名管道。
mkfifo f
{
echo 'V cebqhpr bhgchg.'
sleep 2
echo 'Urer vf zber bhgchg.'
} >f
rot13 < f
写入管道不会启动侦听程序。如果要循环处理输入,则需要保持侦听程序运行。
while true; do rot13 <f >decoded-output-$(date +%s.%N); done
请注意,即使有多个写入过程,所有写入管道的数据也会合并。如果正在读取多个进程,则只有一个进程获取数据。因此,管道可能不适用于并发情况。
命名套接字可以处理并发连接,但这超出了基本Shell脚本的功能。
在天平的最复杂的年底都是定制的文件系统,它可以让你设计并安装文件系统,其中每个open
,write
等等,在程序触发功能。最小的投资是数十行非平凡的编码,例如在Python中。如果只想在读取文件时执行命令,则可以使用scriptfs或fuseflt。
关于命名管道,需要注意一些事项:与文件不同,管道不能具有多个读取器。读取其内容后,它就消失了。因此,您需要循环,即需要不断地将内容从编写器推送到管道中。