我使用以下命令提取了一个git哈希字符串:
git describe --always --abbrev=6
即我想得到6个字符。 问题是,如果6个字符的标签不是唯一的,git似乎会给我7个字符。 所以我想使用像sed这样的标准make / bash命令提取前6个字符。使自身似乎不支持子字符串。
当前,我的make脚本包含以下内容:
foo:=$(lastword $(subst M,,$(subst :, ,$(shell git describe --always --abbrev=6))))
这可能会导致foo = e94181c,但我希望它只是e94181以适合24位内存区域。
答案 0 :(得分:3)
我可能会这样做:
foo := $(shell git describe --always --abbrev=6 | cut -c 1-6)
答案 1 :(得分:1)
它仅适用于GNU make函数,但最简单的方法可能是使用make使用的shell。如果是bash,则可以使用:
foo := $(shell a=$$(git describe --always --abbrev=6); echo $${a:0:6})