是否可以设置一个文件,以便在引用(打开以供读取)时,不返回文件的内容,而是返回运行脚本或可执行文件的结果?
我意识到这可以通过命令行使用 stdout 和管道来完成,但并不总是需要从命令行引用脚本。
答案1
你不能直接这样做。你能做的就是(正如你所说)使用标准输出和管道。不理想,也不是特别优雅,因此您可能应该重新考虑您的要求和建议的解决方案。
假设要调用有问题的文件date
,并且您希望它打印有关当前日期/时间的消息:
# Create the "file" as a FIFO (a pipe)
mkfifo date
# Start the background process that always ensures there's data in the FIFO
( while :; do ( echo "The current date/time is $(date)" ) >date; done ) &
# Now read the "file" that's actually a pipe
date # Date/time now
cat date # Content from the "file" that's actually a pipe
date # Date/time now, again
# And a minute or so later, try that again, just to show the effect of a
# repeated read...
cat date