通常我使用echo -e "\e[1:32mMessage\e[0m"
从makefile中打印出色彩鲜艳的消息。但现在我想在ifndef
块内打印消息,所以我使用$(info Message)
样式。是否有可能使这种信息丰富多彩?
答案 0 :(得分:2)
是。您可以使用tput
之类的工具来输出所需的文字转义序列,而不是使用echo -e
(无论如何都不是一个好主意)来做同样的事情。
例如:
$(info $(shell tput setaf 1)Message$(shell tput sgr0))
虽然这需要生成两个 shell并且要运行两个外部命令,而不是配方上下文中的echo
(或类似)方法,这样才能比较更贵。
您可以(并且如果您计划在多个地方使用颜色)将tput
的输出保存在变量中,然后重新使用它。
red:=$(shell tput setaf 1)
reset:=$(shell tput sgr0)
$(info $(red)Message$(reset))
$(info $(red)Message$(reset))