添加颜色在OS X上不起作用
我最近切换到Macbook Air,然后转到OS X.我将一些当前项目导入到它并尝试使用我的Makefile编译它们。
我的Makefile有一些自定义输入添加颜色与/ bin / echo -e“\ 033 [0; 31m”例如+文本。 它在我的旧计算机(OpenSuse distrib)上运行良好,但它甚至不再在我的Mac上编译我的二进制文件。 这是我尝试通过Makefile提示自定义行时获得的内容:
-e \033[0;31m (MY TEXT) \033[00m
因为我在编译我的.o文件时使用自定义输入,所以没有编译它们所以我的项目构建失败。 我的Makefile在没有这些自定义输出的情况下工作得很好,但我想知道为什么它们不适用于OS X.
如果有人要求进一步调查,我可以发布我的Makefile代码。
这与Color termcaps Konsole类似,但不完全相同? 。 问题是-e
不是OSX echo (它跟随POSIX )的选项。 如果您取出-e
,它将按预期工作。
-e
选项在某些实现中用于允许\e
作为\033
的同义词(但您的示例仍然使用后者)。
对于POSIX脚本使用echo
或printf
是否很有用,因为它们都接受相同的反斜杠序列。 例如, printf
当然接受%
序列来格式化数字,但是C ++程序员已经养成了(cout vs echo)不使用printf
style调用的习惯。
以供参考。
- printf – 写入格式化输出
- echo – 将参数写入标准输出