我有一个简单的 makefile,应该打印 Git 日志,如下所示。
SHELL=/bin/bash
get_log:
echo $(git log)
但是,当我运行
make get_log
时,什么也没有返回。虽然如果我直接在 CMD 中运行 git log
,我会得到结果。
文件格式正确;我在这里使用空格而不是制表符来发布问题。 这里可能有什么问题?
线路
echo $(git log)
有两个缺陷:它使用单个
$
告诉 make 查找变量 git
的内容,但带有错误的空格和 log
作为加法。我不认为 make
会在这种格式错误的访问下找到任何东西,这意味着它会默默地用……什么也没有替换表达式。其次,您不需要 echo
,因为 git log
无论如何都会写入 stdout
。所以正确的形式就是:
get_log:
git log
如果这非常有帮助则是另一个问题。我更喜欢在脚本中分离关注点 - 只要您不能添加任何好处,例如从部署分支或 sg 获取日志。类似地,我会远离摆弄
git
。无论如何,用户必须学习其基础知识,例如log
。
PS:我建议您阅读https://www.gnu.org/software/make/manual/上的手册,因为您甚至缺乏对
make
最基本的理解(无意冒犯),这会令人沮丧你一次又一次地在这一点上(缺乏)知识。