You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Bash脚本中打印含ANSI转义序列的变量内容?

打印Bash中存储终端控制字符的变量内容

当你把tput的输出(终端控制字符,即ANSI转义序列)存入变量后,直接echo会让终端执行这些控制码(比如设置粗体和红色),而不是显示变量的实际内容。以下几种方法可以帮你查看变量的真实内容:

  • 使用cat -v转义不可见字符:

    echo "$red" | cat -v
    

    输出会将转义序列显示为可见的脱字符形式,比如^[[1m^[[38;5;196m,清晰展示控制字符的结构。

  • 使用Bash内置的printf "%q"格式化输出:

    printf "%q\n" "$red"
    

    这个命令会把变量内容转义成可直接复用的Bash语法格式,输出类似$'\E[1m\E[38;5;196m',直观体现转义序列的组成。

  • 使用od以十六进制查看原始字节:

    echo "$red" | od -t x1
    

    输出每个字符的十六进制编码,比如0000000 1b 5b 31 6d 1b 5b 33 38 3b 35 3b 31 39 36 6d,适合需要深入了解底层字节结构的场景。

内容的提问来源于stack exchange,提问作者Dilna

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 19:07:37