如何执行脚本而不是从文件中读取?

如何执行脚本而不是从文件中读取?

是否可以设置一个文件,以便在引用(打开以供读取)时,不返回文件的内容,而是返回运行脚本或可执行文件的结果?

我意识到这可以通过命令行使用 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

相关内容