在 Shell 中,可以通过 echo -e 命令结合 ANSI 转义码 来输出带有颜色的文本。ANSI 转义码控制文本的颜色、样式和背景色。

示例:输出红色文本

echo -e "\033[31m这是红色文本\033[0m"

基本语法

echo -e "\033[<样式>;<前景色>;<背景色>m文本内容\033[0m"
  • 样式:控制文本样式,例如加粗、下划线等。

  • 前景色:设置字体颜色。

  • 背景色:设置背景颜色。

  • ​\033[0m​:重置样式,防止后续文本受影响。

常用颜色代码

  • 样式: 0:默认 1:加粗 4:下划线 5:闪烁 7:反显

  • 前景色: 30:黑色 31:红色 32:绿色 33:黄色 34:蓝色 35:紫色 36:青色 37:白色

  • 背景色: 40:黑色背景 41:红色背景 42:绿色背景 43:黄色背景 44:蓝色背景 45:紫色背景 46:青色背景 47:白色背景

示例用法

  • 输出绿色加粗文本:

echo -e "\033[1;32m加粗绿色文本\033[0m"
  • 输出黄色字体蓝色背景:

echo -e "\033[33;44m黄色字体蓝色背景\033[0m"
  • 混合多种颜色:

echo -e "\033[31m红\033[0m \033[32m绿\033[0m \033[34m蓝\033[0m"

注意事项

  • 终端兼容性: 大多数现代终端支持 ANSI 转义码,但某些旧终端可能不支持。

  • 非交互环境: 在脚本输出到文件或管道时,颜色码可能导致乱码。可检查是否为终端环境:

if [ -t 1 ]; then
echo -e "\033[31m红色文本\033[0m"
else
echo "普通文本"
fi