shell在linux命令行中输出带颜色的彩色文字

作者

linux shell 中输出内容,常用echo , echo 有个选项 -e。 使用开启转义功能。shell中可以输出彩色的文字,也可以把文字的背景设置成彩色的。只要按照固定的书写格式即可。书写的格式就是 \033[3x;4ym文字的内容\033[0m

格式的组成 \033[3x;4ym文字的内容\033[0m

  1. \033 引导非常规字符序列, \033 就是字符
  2. [3x;4ym 中3x,4y分别是前景色(文字的颜色),和背景色。x和y的取值可以 0 到 7,不同的颜色对应不同的值。
  3. [3x;4ym 中的 [ 是开始设置的字符, m 是结束设置的字符
  4. \033[0m 表示取消设置。

需要注意的是,不仅仅可以设置颜色,还可以设置其他的内容。

这里先看一下输出的效果

#!/bin/bash
for i in {0..7}
do
    for j in {0..7}
    do
        echo -e "\033[3${i};4${j}m文字色值 ${i}, 背景色值 ${j}\033[0m"
    done
done

输出的效果

linux shell 彩色文字

颜色代码:

文字的颜色,就是前景色。 前景色,和背景色 数字对应的颜色值是相同的。

颜色代码 颜色
0 黑色
1 红色
2 绿色
3 棕色
4 蓝色
5 紫色
6 青色
7 白色

除去颜色,还可以设置, 粗体(1)、一半亮度(2)、下划线(4)、闪烁(5)

这里少个3, 因为3是颜色。
比如, 输出一个下划线

echo -e "\033[4;31;42m文字\033[0m"

一条评论

  1. 我使用qt开发shell 工具,但是控制台输出了这样的字符串,我还没想到什么好办法转义呢!

回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注