【发布时间】:2021-01-22 18:35:22
【问题描述】:
在 Makefile 中,我有如下配方:
date:
echo $(date +"%m-%d-%Y %T")
当我在终端中执行这个配方/makefile 时,echo 只打印一个空行。但是,如果我直接在终端中执行 echo 命令,它会打印出类似“01-22-2021 12:34:49”的内容。为什么我的 makefile 无法正常工作,我该怎么做才能修复它?我最好的猜测是它可能与makefile中的每一行如何在单独的shell中执行有关,但这似乎是一个弱猜测,我不知道该怎么做或我可以尝试什么......请帮助。
注意:我知道有其他方法可以获得正确的输出(即类似于我的终端打印的内容)。例如,我发现在我的 makefile 中使用下面的代码可以满足我在特定情况下的需要。随意分享获得此类结果的替代方法,但我试图提出的核心问题是 makefile 失败的原因,所以请尽可能解决这个问题。
date:
date +"%m-%d-%Y %T" >> fake.log
【问题讨论】:
-
虽然您可以使用上面链接中描述的
$(shell,但我认为这不是 OP 尝试做的正确解决方案——请参阅this 以了解双美元符号。