MinGW/MSYS外壳颜色

Ste*_* Lu 3 shell mingw colors msys

我想让我的makefile输出进行颜色编码.

但我不能让ANSI颜色代码在这个终端上工作.它应该是可能的,ls --color给我丰富多彩的输出,我的shell提示也是彩色的:

$ echo $PS1
\[\033]0;$MSYSTEM:\w\007 \033[32m\]\u@\h \[\033[33m\w\033[0m\] $
Run Code Online (Sandbox Code Playgroud)

我怀疑第一部分可能会将终端设置为特殊模式,以便接受颜色代码.有人可以解释一下吗?

Ste*_* Lu 6

我解决了

要使用的命令是echo -e.

所以,在makefile中:

foo.o: foo.c
    @echo -e "\033[32mCompiling foo.c\033[0m"
    $(CC) $(CFLAGS) -c -o $@ $<
Run Code Online (Sandbox Code Playgroud)

我认为这也适用于bash.

  • 虽然我会指出我仍然没有弄清楚如何让一个任意程序将终端切换到正确的模式来解释颜色信号.目前为了使我的单元测试打印出来,我必须通过cat管道命令,例如. (2认同)