由于某种原因,我的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
选择环境
[1] -暂存
[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;81mfooe[0mn"
或者使用(如您所发现的)