如何创建一个伪文件,每次读取命令时都会从命令中获取其内容

如何创建一个伪文件,每次读取命令时都会从命令中获取其内容

我想创建一些类似文件的东西(可以像普通文件一样读取),每次读取它时,它都会从命令获取输出。

例如,如果我这样做echo $RANDOM > test,那么我可以调用它cat test,它将显示生成的随机数。

除了我需要每次调用cat test(或以任何其他方式读取它)时,都会调用我的生成器命令(echo $RANDOM在我的示例中,但实际上它会生成更多数据 - 大约 1kb)。

我认为最好的选择是创建某种设备特殊文件/设备驱动程序?我需要的确实类似于 /dev/zero 或 /dev/random。是否可以简单地创建它?使用标准 gnu/sh 库会比较理想吗?

预先感谢您的任何提示!

答案1

使用命名管道功能:

mkfifo myfancypipe;
while true; do bash -c 'echo $RANDOM' > myfancypipe; done

现在转到另一个终端,每次您都会调用:

cat myfancypipe

您将从以下位置获取信息echo $RANDOM

相关内容