添加颜色在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脚本使用echoprintf是否很有用,因为它们都接受相同的反斜杠序列。 例如, printf当然接受%序列来格式化数字,但是C ++程序员已经养成了(cout vs echo)不使用printf style调用的习惯。

以供参考。

  • printf – 写入格式化输出
  • echo – 将参数写入标准输出