Linux shell 颜色输出

原理

可以利用ANSI escape code 实现linux终端输出颜色文本。下面是几个ANSI escape code 对应的颜色。

1
2
3
4
5
6
7
8
Black        0;30     Dark Gray     1;30
Red 0;31 Light Red 1;31
Green 0;32 Light Green 1;32
Brown/Orange 0;33 Yellow 1;33
Blue 0;34 Light Blue 1;34
Purple 0;35 Light Purple 1;35
Cyan 0;36 Light Cyan 1;36
Light Gray 0;37 White 1;37

示例

以下是一个输出ANSI Rainbow 的示例。

1
2
3
4
5
#!/bin/bash
for (( i = 30; i < 38; i++ ))
do
echo -e "\033[0;"$i"m Normal: (0;$i); \033[1;"$i"m Light: (1;$i)";
done

输出结果如下
avatar
如果想设置固定区间的颜色,可以将’\033[0m’放在对应区间的结尾。如下示例

1
2
3
4
5
6
#!/bin/bash
NC='\033[0m' # No Color
for (( i = 30; i < 38; i++ ))
do
echo -e "I \033[0;${i}mlove${NC} Linux"
done

输出结果如下
avatar

Donate
0%