2015-10-01 36 views
1

通常我使用echo -e "\e[1:32mMessage\e[0m"从makefile中打印出丰富多彩的消息。但是现在我想打印ifndef块内的消息,所以我使用的是$(info Message)的样式。是否有可能让这种信息变得丰富多彩?丰富多彩的makefile信息命令

回答

2

是的。您可以使用像tput这样的工具来输出所需的文字转义序列,而不是使用echo -e(反正这不是个好主意)来做同样的事情。

例如:

$(info $(shell tput setaf 1)Message$(shell tput sgr0)) 

虽然需要弹催生和两个外部命令,而不是在配方上下文echo(或类似)的方法来运行所以这是相对较昂贵的。

您可以(并且应该如果您计划在多个地方使用颜色)将tput的输出保存在变量中,然后重新使用它。

red:=$(shell tput setaf 1) 
reset:=$(shell tput sgr0) 
$(info $(red)Message$(reset)) 
$(info $(red)Message$(reset)) 
+0

@ eric-melski谢谢。那是我脑中的代码,它只是没有正确地出来我的手指。 –