在 Linux 中,是否可以创建一个文件,在读取该文件时,从可执行程序中获取其内容?
具体来说,假设我有一个程序date
。是否可以通过读取文件(使用类似的方法cat date_file
)获取该程序的输出?
例如,如果这是可能的:
$ date
05/06/18 22:51:24 UTC-7:00
…30 sec later…
$ date
05/06/18 22:51:54 UTC-7:00
这可能吗?
$ cat date_file
05/06/18 22:51:24 UTC-7:00
…30 sec later…
$ cat date_file
05/06/18 22:51:54 UTC-7:00
如果可能的话,我该如何实现这一目标?
我知道有 Linux/Unix 设备文件,但我不确定它们是否适用于此。
提前致谢!
答案1
不,您所问的问题(正如您所问的那样)是不可能的。读取文件是一种操作系统调用,不允许将程序作为此行为的一部分来执行。
一些可能帮助你实现目标的东西可能是命名管道。命名管道将允许您创建一个虚拟文件(使用 mkfifo)。如果您有一个输出到该文件的程序,则另一个不同的程序可以从中读取。
当然,可以将命令评估到文件或命令行中,并得到一个带有“变量”的文件,然后可以使用另一个程序替换它。