我可以在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 将解释输出。