如何在 bash 中创建附加到另一个文件的伪文件



我有一个封闭的程序(即Intersystems 'csession' Cachédb终端),它将写入作为参数给出的文件。它这样做了几次,然后返回。每次,给定的文件都会被覆盖,所以最后,我只得到最后一个结果......

我的想法是,可以欺骗并提供一个特殊的伪文件作为参数,它将充当代理并将写入其中的内容附加到另一个文件中。

create proxyfile as >> realfile
cat "Hello" > proxyfile
cat "Bye" > proxyfile
cat realfile
Hello
Bye

有没有人认为这可能是可行的,可能使用一点实用程序?

您可以使用 FIFO 文件(命名管道)来实现此目的。要查看它们的工作原理,请打开两个终端窗口。一、做

cd /tmp
mkfifo pipe
tail -f pipe

而在另一个

cd /tmp
echo "Hello" > pipe
echo "Bye" > pipe

对于实际问题,让您的应用程序写入 FIFO 并在后台使用tail -f pipe > outputfile将结果收集到 outputfile 中。

您可以将/dev/stdout用作输出文件,将其管道传输到 cat,并将标准输出附加到带有 >> 的文件中

csession /dev/stdout | cat >>realfile

这不会覆盖,而是附加到现有文件。

相关内容

  • 没有找到相关文章

最新更新