我可以在 Linux 中创建一个实际上是脚本输出的特殊文件吗?

我可以在 Linux 中创建一个实际上是脚本输出的特殊文件吗?

我可以在linux中创建一个特殊的文件,也许使用mknod,这实际上是脚本的输出吗?

例子:

cat specialfile

输出:

testing 123

特殊文件内:

echo "testing 123"

因此,它不是实际显示,而是 echo "testing 123"
显示脚本输出的结果testing 123

我意识到脚本名称和输出句柄可能必须是两个不同的文件,以便可以对其进行编辑。 specialfile.sh对于脚本和 specialfile句柄

答案1

您可以创建一个命名的 FIFO ( mkfifo <name>),然后执行以下操作:

mkfifo my-fifo
echo "testing 123" > my-fifo

在另一个 shell 中执行以下操作:

dumb-program my-fifo

对于愚蠢的程序来说,FIFO 看起来就像一个文件(不完全是,因为它不可查找)。这相当于使用匿名管道执行此操作,如下所示:

echo "testing 123" | dumb-program /dev/stdin

或者在现代 shell 中使用进程替换,如下所示:

dumb-program <(echo "testing 123")

我不确定设备节点,但对我来说,您似乎以错误的方式处理问题。

答案2

您可以cat在命令行的子 shell 中执行:

$(cat specialfile)

然后 shell 将解释输出。

相关内容