Linux shell 颜色输出
Linux shell 也可以花里胡哨
原理
可以利用ANSI escape code 实现linux终端输出颜色文本。下面是几个ANSI escape code 对应的颜色。
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 的示例。
#!/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
输出结果如下
如果想设置固定区间的颜色,可以将'\033[0m'放在对应区间的结尾。如下示例
#!/bin/bash
NC='\033[0m' # No Color
for (( i = 30; i < 38; i++ ))
do
echo -e "I \033[0;${i}mlove${NC} Linux"
done
输出结果如下