![使用脚本输出作为文件(而不是文件)](https://linux22.com/image/186799/%E4%BD%BF%E7%94%A8%E8%84%9A%E6%9C%AC%E8%BE%93%E5%87%BA%E4%BD%9C%E4%B8%BA%E6%96%87%E4%BB%B6%EF%BC%88%E8%80%8C%E4%B8%8D%E6%98%AF%E6%96%87%E4%BB%B6%EF%BC%89.png)
我有两个程序在 ~/.purple 中使用相同的配置(chatty + pidgin),但我希望将它们分成不同的配置文件夹。
我的目标是让 chatty 仅使用 chatty 的配置,但 pidgin 则同时使用两者。
我可以通过使用参数调用 pidgin-c
来为其配置目录提供特定路径来完成此操作,这很好。
但我希望将 chatty 配置集成到 pidgin 中,但让 chatty 本身只能在它自己的配置上工作。
为此我想出了一个解决办法。我不希望将配置文件(例如哪些帐户存在/处于活动状态,或联系人列表)作为常规文件,而是希望它们表现得像设备(仅在用户空间中),因为如果您从文件中读取,您实际上是从由某些脚本或程序按需创建的缓冲区中读取的,类似于从设备驱动程序中读取的方式只是使用文件操作以文件形式透明地为用户生成数据。
该脚本或多或少会在 chatty 的配置文件和具有 pidgin 原始配置的单独文件上调用 cat (或等效的 c++/python/任何代码)。
脚本/程序/驱动程序还必须处理对该文件的写入,仅更改 pidgin 的配置。
例子:
.purple/blist.xml:
ChattyContact1
ChattyContact2
ChattyContact3
.pidgin/blist_pidginOnly.xml:
PidginContact1
PidginContact2
PidginContact3
cat .pidgin/blist.xml
(特殊文件、管道、设备或类似文件):
ChattyContact1
ChattyContact2
ChattyContact3
PidginContact1
PidginContact2
PidginContact3
其中组合是在通过某种机制读取它时生成的,和/或当任一文件更改时自动更新。
该示例经过简化,由于原始文件是 XML 格式,因此需要将一些程序逻辑应用于文件合并。
文件/脚本/设备/管道/?还应该处理对其的写入,通过某些程序逻辑确定要写入哪个实际文件,然后执行此操作。
我对这方面的编程部分很有信心,我只是想知道是否有可能将文件系统上的文件挂接到某个程序中。
我正在考虑使用命名管道,但是一旦输入被处理一次,它就会关闭。但也许我不太了解命名管道,这是一个可能的解决方案。