在我的Makefile中,我想使用当前的日期和时间创建一个环境变量。伪代码:将日期和时间附加到linux makefile中的环境变量
LOG_FILE := $LOG_PATH + $SYSTEM_DATE + $SYSTEM_TIME
任何帮助表示赞赏 - 谢谢。
在我的Makefile中,我想使用当前的日期和时间创建一个环境变量。伪代码:将日期和时间附加到linux makefile中的环境变量
LOG_FILE := $LOG_PATH + $SYSTEM_DATE + $SYSTEM_TIME
任何帮助表示赞赏 - 谢谢。
您可以使用此:
LOGFILE=$(LOGPATH) `date +'%y.%m.%d %H:%M:%S'`
可以用 “date” 命令
你需要化妆用$(壳操作)命令。如果您使用operation
,那么每次都会对shell命令进行评估。如果您正在写入日志文件,则不希望每次在单个make命令中访问日志文件名时都要更改日志文件名。
LOGPATH = logs
LOGFILE = $(LOGPATH)/$(shell date --iso=seconds)
test_logfile:
echo $(LOGFILE)
sleep 2s
echo $(LOGFILE)
这将输出:
echo logs/2010-01-28T14:29:14-0800
logs/2010-01-28T14:29:14-0800
sleep 2s
echo logs/2010-01-28T14:29:14-0800
logs/2010-01-28T14:29:14-0800
但是这不会在不同的目标上保持不变。 –
这会不会导致LOGFILE被evaulated每次使用它。 例如: LOGFILE =日志/'日期+'%Y%米%D-%H:%M:%S'' echo_logs: 回声$(LOGFILE) 睡眠5S 回波$ ($ LOGFILE) 将打印: 回波日志/'日期+'%Y%米%D-%H:%M:%S'' 日志/ 10.01.28-14:21:08 睡眠5s 回声记录/'日期+'%y。%m。%d-%H:%M:%S'' logs/10.01.28-14:21:13 – Aaron
@Aaron:You are;为避免这种情况,可以使用gnu make'shell'函数代替反引号:'LOGFILE = $(LOGPATH)$(shell date)' – catwalk
同意和完整性:LOGFILE = $(LOGPATH)$(shell date +'%Y 。%M%D-%H:%M:%S')。也适用于Solaris。 – anisbet