我(生成文件系)建立系统输出诊断的相当量,并且我希望它们上色,如在解释this question(优选使用tput setaf
和tput sgr0
)。但是,编辑我系统中所有分层Makefile的所有字符串将是一项压倒性的和非实际的任务(如果我将来改变主意,那么再次撤消它将是另一项艰巨的任务)。自定义“回声”(用于彩色文本)在生成文件
理想情况下,我想要有像my_warning_echo
,my_error_echo
等的自定义结构,与echo
的语法完全相同。
例如,语法应该是my_warning_echo "some text message"
,并且执行的结果是输出@echo "$$(tput setaf 3)some text message$$(tput sgr0)
(double $$是因为这将在Makefile中使用)。
主要问题是关闭tput sgr0
(否则我可以使用一个包含@echo "$$(tput setaf 3)
的宏)。
我也可以编写一个采用一个参数(文本消息)的shell函数,但是该语法需要在消息的开始和结尾处添加括号。
是否有任何方法可以让我保持与标准echo
相同的语法?
解决方案依赖于GNU化妆就可以了(我喜欢尽可能的标准,但我的编译系统已经使用了GNU对make的扩展,所以......)
这个问题还不清楚。标准回声当然在[POSIX]中(http://pubs.opengroup.org/onlinepubs/9699919799/utilities/echo.html)。 –