1. 颜色、样式对照表
1.1. 颜色对照表
序号 | 颜色 | color | 前景色 | 前景色(亮) | 背景色 | 背景色(亮) |
0 | 黑 | BLACK | 30 | 90 | 40 | 100 |
1 | 红 | RED | 31 | 91 | 41 | 101 |
2 | 绿 | GREEN | 32 | 92 | 42 | 102 |
3 | 黄 | YELLOW | 33 | 93 | 43 | 103 |
4 | 蓝 | BLUE | 34 | 94 | 44 | 104 |
5 | 品红 | MAGENTA | 35 | 95 | 45 | 105 |
6 | 青 | CYAN | 36 | 96 | 46 | 106 |
7 | 白 | WHITE | 37 | 97 | 47 | 107 |
8 | ||||||
9 | 默认 | DEFAULT | 39 | 39 | 49 | 49 |
1.2. 样式对照表
序号 | 样式 | style | 样式值 |
0 | 正常(重置) | NORMAL | 0 |
1 | 粗体(增强) | BOLD | 1 |
2 | 弱化 | FAINT | 2 |
3 | 斜体 | ITALIC | 3 |
4 | 下划线 | UNDERLINE | 4 |
5 | 缓慢闪烁(未广泛支持,shell有效) | SLOW_BLINK | 5 |
6 | 快速闪烁(未广泛支持) | FAST_BLINK | 6 |
7 | 反色 | REVERSE_COLOR | 7 |
8 | 前景隐藏(未广泛支持,shell有效) | HIDDEN | 8 |
9 |
| STRIKETHROUGH | 9 |
1.3. 更多样式
2. java 使用彩色输出
- java代码
public class AnsiEncoderTest {
// 0b、0、、0x
// \033即八进制的33,对应十进制的27、16进制的0x1b、二进制0b1111,对应ASCⅡ的ESC。https://baike.baidu.com/item/ASCII/309296
// 源码: https://gitee.com/lishuoboy/lishuoboy-hutool/tree/master/src/main/java/top/lishuoboy/hutool/lang
private static final String START = "\033[";
private static final String END = "m";
@Test
public void test() {
System.out.println("==========test()==========");
// 使用1个样式、颜色
System.out.println(START + 31 + END + "我是红色前景");
System.out.println("你猜我啥颜色?");
System.out.println(START + 91 + END + "我是亮红色前景" + START + 0 + END);
System.out.println("你猜我啥颜色?");
System.out.println(START + 41 + END + "我是红色背景" + START + 0 + END);
System.out.println(START + 3 + END + "我是斜体" + START + 0 + END);
// 同时使用多个样式、颜色
System.out.println(START + "34;103" + END + "我是蓝色前景、亮黄色背景" + START + 0 + END);
System.out.println(START + 34 + END + START + 103 + END + "我是蓝色前景、亮黄色背景" + START + 0 + END);
}
@Test
public void testHuTool() {
System.out.println("==========testHuTool()==========");
// 使用1个样式、颜色
System.out.println(AnsiEncoder.encode(AnsiColor.RED, "我是红色前景"));
System.out.println("你猜我啥颜色?");
System.out.println(AnsiEncoder.encode(AnsiColor.BRIGHT_RED, "我是亮红色前景"));
System.out.println("你猜我啥颜色?");
System.out.println(AnsiEncoder.encode(AnsiBackground.RED, "我是红色背景"));
System.out.println(AnsiEncoder.encode(AnsiStyle.ITALIC, "我是斜体"));
// 同时使用多个样式、颜色
System.out.println(AnsiEncoder.encode(AnsiColor.BLUE, AnsiBackground.BRIGHT_YELLOW, "我是蓝色前景、亮黄色背景"));
}
}
- idea日志
linux shell
中java -jar
输出windows cmd
中java -jar
输出
3. shell 使用彩色输出
- sh脚本
START='\e[';
END=m;
#使用1个样式、颜色
echo -e "${START}31${END}我是红色前景"
echo -e "你猜我啥颜色?"
echo -e "${START}91${END}我是亮红色前景${START}0${END}"
echo -e "你猜我啥颜色?"
echo -e "${START}41${END}我是红色背景${START}0${END}"
echo -e "${START}3${END}我是斜体${START}0${END}"
#同时使用多个样式、颜色
echo -e "${START}34;103${END}我是蓝色前景、亮黄色背景${START}0${END}"
echo -e "${START}34${END}${START}103${END}我是蓝色前景、亮黄色背景${START}0${END}"
- sh日志