当前位置: 首页 > news >正文

【shell】终端文本的颜色和样式打印

在Shell脚本中,\033[XXmANSI转义序列,用于控制终端文本的颜色和样式。以下是完整的颜色和样式代码列表:


1. 基本格式

echo -e "\033[CODEm你的文本\033[0m"
  • \033[:转义序列开始(\e[\x1b[ 等效)。
  • CODE:颜色/样式代码(见下表)。
  • m:结束代码标记。
  • \033[0m:重置所有样式(避免影响后续输出)。

2. 颜色代码表

(1)标准前景色(文本颜色)
颜色代码示例
黑色30echo -e "\033[30m黑色\033[0m"
红色31echo -e "\033[31m红色\033[0m"
绿色32echo -e "\033[32m绿色\033[0m"
黄色33echo -e "\033[33m黄色\033[0m"
蓝色34echo -e "\033[34m蓝色\033[0m"
洋红色35echo -e "\033[35m洋红\033[0m"
青色36echo -e "\033[36m青色\033[0m"
白色37echo -e "\033[37m白色\033[0m"
(2)标准背景色
颜色代码示例
黑色背景40echo -e "\033[40m黑底\033[0m"
红色背景41echo -e "\033[41m红底\033[0m"
绿色背景42echo -e "\033[42m绿底\033[0m"
黄色背景43echo -e "\033[43m黄底\033[0m"
蓝色背景44echo -e "\033[44m蓝底\033[0m"
洋红背景45echo -e "\033[45m洋红底\033[0m"
青色背景46echo -e "\033[46m青底\033[0m"
白色背景47echo -e "\033[47m白底\033[0m"
(3)亮色(高亮前景色)
颜色代码示例
亮黑色90echo -e "\033[90m灰黑\033[0m"
亮红色91echo -e "\033[91m亮红\033[0m"
亮绿色92echo -e "\033[92m亮绿\033[0m"
亮黄色93echo -e "\033[93m亮黄\033[0m"
亮蓝色94echo -e "\033[94m亮蓝\033[0m"
亮洋红色95echo -e "\033[95m亮洋红\033[0m"
亮青色96echo -e "\033[96m亮青\033[0m"
亮白色97echo -e "\033[97m亮白\033[0m"
(4)亮色背景
颜色代码示例
亮黑背景100echo -e "\033[100m亮黑底\033[0m"
亮红背景101echo -e "\033[101m亮红底\033[0m"
亮绿背景102echo -e "\033[102m亮绿底\033[0m"
亮黄背景103echo -e "\033[103m亮黄底\033[0m"
亮蓝背景104echo -e "\033[104m亮蓝底\033[0m"
亮洋红背景105echo -e "\033[105m亮洋红底\033[0m"
亮青背景106echo -e "\033[106m亮青底\033[0m"
亮白背景107echo -e "\033[107m亮白底\033[0m"

3. 样式代码

样式代码示例
重置0echo -e "\033[0m重置\033[0m"
加粗1echo -e "\033[1m加粗\033[0m"
暗淡2echo -e "\033[2m暗淡\033[0m"
斜体3echo -e "\033[3m斜体\033[0m"
下划线4echo -e "\033[4m下划线\033[0m"
闪烁5echo -e "\033[5m闪烁\033[0m"
反色7echo -e "\033[7m反色\033[0m"
隐藏8echo -e "\033[8m隐藏\033[0m"

4. 组合使用

可以同时设置多个属性,用分号 ; 分隔:

# 红色 + 加粗 + 绿色背景
echo -e "\033[31;1;42m红字加粗绿底\033[0m"

5. 兼容性说明

  • 部分终端可能不支持某些样式(如闪烁 5 或斜体 3)。
  • 推荐在脚本中优先使用标准颜色(30-37, 40-47, 90-97, 100-107)。

掌握这些代码后,可以轻松为脚本输出添加彩色和样式!


补充:

echo -e "\033[30m黑色\033[0m" 这个命令中,-eecho 命令的一个选项,它的作用是启用转义字符的解释(比如 \033 表示 ASCII 转义字符,用于控制终端颜色)。

具体解释:

  • \033[30m 表示设置文本颜色为黑色。
  • \033[0m 表示重置所有文本属性(恢复默认颜色)。
  • 如果没有 -eecho 会直接输出 \033[30m黑色\033[0m,而不会解析转义序列,导致终端显示的是原始字符而不是彩色文本。

是否可以去除 -e

  • 可以去除,但去除后颜色控制会失效,终端会直接显示 \033[30m黑色\033[0m 这样的原始字符串。
  • 如果你希望保留颜色效果,就不能去掉 -e

替代方案(兼容性更好):

某些系统(如 macOS 的默认 echo)可能不支持 -e,这时可以用 printf 代替:

printf "\033[30m黑色\033[0m\n"

printf 默认支持转义字符,不需要额外选项。)

总结:

  • -e 是让 echo 解析转义字符的关键选项,去掉后颜色控制会失效。
  • 如果跨平台使用,建议用 printf 替代。
http://www.dtcms.com/a/139362.html

相关文章:

  • 滑动窗口209. 长度最小的子数组
  • IP-Guard域用户登录后自动登录代理控制台
  • Vue-cli迁移Rsbuild
  • 重置cursor免费次数(2025.4.17可行)
  • MySQL入门:数据操作CURD
  • SSMS中如何把一个库的表移到另一个库中
  • java 多线程之Worker Thread模式(Thread Pool模式)
  • 基于Django框架的图书索引智能排序系统设计与实现(源码+lw+部署文档+讲解),源码可白嫖!
  • 大数据开发核心技术难点:数据倾斜问题深度解析
  • docker harbor私有仓库登录报错
  • CASS 用户坐标系转换到世界坐标系
  • 阿里云ECS访问不了
  • 【NLP 64、基于LLM的垂直领域【特定领域】问答方案】
  • Java与MySQL数据库连接的JDBC驱动配置教程
  • ORA-00600: internal error code, arguments: [kcratr_nab_less_than_odr], [1],
  • RabbitMQ原理及代码示例
  • ESP32之OTA固件升级流程,基于VSCode环境下的ESP-IDF开发,基于阿里云物联网平台MQTT-TLS连接通信(附源码)
  • 2025华中杯B题——AI实现
  • Ubuntu20.04配置cartographer记录
  • 函数递归:递归的概念
  • C#日志辅助类(Log4Net)实现
  • Redis之全局唯一ID
  • 2. 判断列表元素的单一性
  • IO、存储、硬盘、文件系统相关常识
  • IT资产管理(一)之GLPI安装及部署
  • 【信息系统项目管理师】高分论文:论信息系统项目的质量管理(视频大数据平台项目)
  • 数智化招标采购系统分类及功能亮点
  • OpenHarmony - 小型系统内核(LiteOS-A)(五)
  • 时序预测 | Matlab实现基于VMD-WOA-ELM和VMD-ELM变分模态分解结合鲸鱼算法优化极限学习机时间序列预测
  • 【Python】用Python写一个俄罗斯方块玩玩