BASH中ANSI转义码便捷调用工具及映射获取方法咨询
在Bash中便捷使用ANSI格式输出的方案
一、现成的工具/脚本方案
1. tput 内置工具
这是Bash环境里原生自带的工具,无需额外安装,专门用于查询终端能力、输出格式控制码,比硬编码转义码更可靠(自动适配不同终端环境)。常用用法示例:
- 重置所有格式:
tput sgr0 - 启用加粗:
tput bold - 启用斜体:
tput sitm(注:部分终端可能不支持) - 设置前景色为红色:
tput setaf 1(数字对应标准ANSI色值,0=黑、1=红、2=绿,以此类推) - 设置背景色为红色:
tput setab 1 - 启用下划线:
tput smul
实际使用代码示例:
# 输出加粗红色文本后恢复默认格式 echo "$(tput bold)$(tput setaf 1)这是加粗红色文本$(tput sgr0) 这是普通文本"
2. 预定义变量脚本片段
如果觉得tput参数不易记忆,可以直接使用预定义好的变量集合,把以下代码片段复制到你的脚本开头,或者保存为单独文件通过source命令引入:
# 基于tput的格式变量定义 RESET=$(tput sgr0) BOLD=$(tput bold) ITALIC=$(tput sitm) FG_RED=$(tput setaf 1) BG_RED=$(tput setab 1) FG_GREEN=$(tput setaf 2) FG_YELLOW=$(tput setaf 3) BG_BLUE=$(tput setab 4) # 可根据需求扩展更多颜色和格式
使用方式和你之前硬编码的逻辑完全一致,但无需手动记忆转义码,且适配性更强。
二、手动获取ANSI转义码映射关系
如果需要直接获取转义码的对应关系,有两种可靠途径:
- 查询终端官方文档:比如xterm、GNOME Terminal等主流终端的官方文档中,会列出完整的ANSI转义码对照表,包含格式控制(加粗、斜体等)和颜色码的详细对应。
- 通过
tput反向查询:在终端执行命令直接输出对应转义码,例如想查看加粗对应的转义码,执行:
输出结果类似echo "$(tput bold)" | cat -v^[[1m,对应Bash中可使用的\e[1m或\033[1m格式。
另外,ANSI转义码的标准格式为\e[<参数>m,核心参数对应关系如下:
- 格式控制:0=重置、1=加粗、2=暗淡、3=斜体、4=下划线、9=删除线
- 基础前景色:30-37依次对应黑、红、绿、黄、蓝、紫、青、白;90-97为亮色系前景色
- 基础背景色:40-47依次对应黑、红、绿、黄、蓝、紫、青、白;100-107为亮色系背景色
内容的提问来源于stack exchange,提问作者Mr.
相关产品推荐
相关产品推荐

