【发布时间】:2013-09-28 22:02:12
【问题描述】:
我正在尝试创建一个日志文件,该文件在 make 过程通过 makefile 时跟踪和报告每个配方的结果。
为此,我创建了一个环境变量来保存我的日志文件引用,如下所示:
LOGDIR = logs
LOGFILE = $(LOGDIR)/$(shell date --iso=seconds).log
然后打算使用echo "message" >> $(LOGFILE)
问题是,当处理从一个配方转移到下一个配方时,环境变量会被重新评估,从而导致我的 makefile 中的每个配方都有一个新的日志文件。
为什么要重新评估环境变量,如何防止这种情况使用对日志文件的单个全局引用?
根据 Aaron 的回答 here,我认为使用 $(shell operator) 语法可以防止重新评估变量。
【问题讨论】:
标签: shell makefile environment-variables