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

最佳答案

对。您可以使用类似于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))

关于linux - 多彩的makefile信息命令,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32888782/

10-11 08:06