shell git命令未在makefile中返回任何值

bjg7j2ky  于 2023-01-05  发布在  Shell
关注(0)|答案(2)|浏览(171)

我有一个简单的makefile可以打印git log,如下所示。

SHELL=/bin/bash

 get_log:
     echo $(git log)

然而,当我运行make get_log没有返回任何东西,虽然如果我运行git log直接在CMD我得到的结果.更新:文件格式正确,我使用空格而不是制表符在这里张贴问题。2你知道这里可能有什么问题吗?3提前感谢。

dly7yett

dly7yett1#

错误发生在makefile格式上,根据设计,您必须使用制表符缩进,因此您必须在echo $(git log)之前加上tab indentation

yhxst69z

yhxst69z2#

这条线

echo $(git log)

有两个缺点它使用了一个$命令make查找变量git的内容,但其中包含一个错误的空格和log作为加法。我不认为make会在这种格式错误的访问下找到任何内容,这意味着它会悄悄地将表达式替换为... nothing。其次,你不需要echo,因为git log写的是stdout,所以正确的形式应该是:

get_log:
   git log

如果这是非常有用的是另一个问题。我更喜欢在脚本中分离关注点-只要你不能增加任何好处,如从部署分支或sg.similar获取日志,我会远离摆弄git。用户必须学习它的基础,如log无论如何。
PS:我建议你阅读https://www.gnu.org/software/make/manual/的手册,因为你甚至缺乏对make最基本的理解(无意冒犯),它会在这一点上(缺乏)知识一次又一次地挫败你。

相关问题