gpt4 book ai didi

Bash 按字面打印颜色代码而不是实际颜色

转载 作者:行者123 更新时间:2023-11-29 08:51:08 25 4
gpt4 key购买 nike

出于某种原因,我的 shell 脚本停止打印彩色菜单,而是打印文字颜色代码。我是否以某种方式逃避了颜色编码?

脚本

#!/bin/bash 

function showEnvironments {
echo -e "\e[38;5;81m"
echo -e " SELECT ENVIRONMENT "
echo -e "[1] - QA"
echo -e "[2] - PROD"
echo -e "\e[0m"
}

showEnvironments

输出

\e[38;5;81m

SELECT ENVIRONMENT

[1] - Staging

[2] - QA

\e[0m

我在 Mac OSX 上使用 iTerm,TERM 环境变量设置为 xterm-256color

最佳答案

bash 3.2.x 中 echo -e 的实现有几个明显的错误,这是 Mac OS X 附带的。文档声称 \E(不是 \e)表示 ESC,但两者似乎都不起作用。您可以改用 printf:

printf "\e[38;5;81mfoo\e[0m\n"

或使用(如您所见)\033 来表示 ESC。

bash 的更高版本(肯定是 4.3,也可能是更早的 4.x 版本)修复了这个问题并允许 \e\E 将被使用。

关于Bash 按字面打印颜色代码而不是实际颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37115269/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com