shell终端是支持颜色输出的,如果显示不了颜色,可能是本地终端软件(SecureCRT,PuTTy之类)没设置好,或者不支持。
编译代码或者执行脚本时,哗啦哗啦输出一堆信息,如果能将出错信息以红色显示,成功信息以绿色显示,就能省很多眼力了。
shell下输出带颜色文字,有如下一些方法:
echo "^[[1;32;40mcompile^[[0m"
注意:^[
的输入使用ctrl+v
和ctrl+[
echo -e "\E[1;32;40mcompile\E[0m"
echo -e "\033[1;32;40mcompile\033[0m"
# null
export LESS_TERMCAP_se=$'\E[0m'
# green
export LESS_TERMCAP_us=$'\E[01;32m'
这里的$
符号表示后面的字符串需要按转义进行解析,就好像echo的-e
参数。
echo ${LESS_TERMCAP_us}compile${LESS_TERMCAP_se}
从网上找了一下shell支持的文字颜色,以及一些特殊控制符号,收集如下:
字颜色范围:
echo -e "\033[30m 黑色字 \033[0m"
echo -e "\033[31m 红色字 \033[0m"
echo -e "\033[32m 绿色字 \033[0m"
echo -e "\033[33m 黄色字 \033[0m"
echo -e "\033[34m 蓝色字 \033[0m"
echo -e "\033[35m 紫色字 \033[0m"
echo -e "\033[36m 天蓝字 \033[0m"
echo -e "\033[37m 白色字 \033[0m"
字背景颜色范围:
echo -e "\033[40;37m 黑底白字 \033[0m"
echo -e "\033[41;37m 红底白字 \033[0m"
echo -e "\033[42;37m 绿底白字 \033[0m"
echo -e "\033[43;37m 黄底白字 \033[0m"
echo -e "\033[44;37m 蓝底白字 \033[0m"
echo -e "\033[45;37m 紫底白字 \033[0m"
echo -e "\033[46;37m 天蓝白字 \033[0m"
echo -e "\033[47;30m 白底黑字 \033[0m"
面控制选项:
\033[0m 关闭所有属性
\033[1m 设置高亮度
\033[4m 下划线
\033[5m 闪烁
\033[7m 反显
\033[8m 消隐
\033[30m -- \33[37m 设置前景色
\033[40m -- \33[47m 设置背景色
\033[nA 光标上移n行
\033[nB 光标下移n行
\033[nC 光标右移n行
\033[nD 光标左移n行
\033[y;xH设置光标位置
\033[2J 清屏
\033[K 清除从光标到行尾的内容
\033[s 保存光标位置
\033[u 恢复光标位置
\033[?25l 隐藏光标
\033[?25h 显示光标
在.bashrc里添加如下配置,在使用man命令时,可以使得丰富多彩的manpage页面,改善单调的码农生活, 做一个风骚的程序员:
# less color configure
# blue
export LESS_TERMCAP_mb=$'\E[01;34m'
# red
export LESS_TERMCAP_md=$'\E[01;31m'
# yellow
export LESS_TERMCAP_so=$'\E[01;44;33m'
# null
export LESS_TERMCAP_se=$'\E[0m'
# cyan
export LESS_TERMCAP_ue=$'\E[01;36m'
# magenta
export LESS_TERMCAP_me=$'\E[01;35m'
# green
export LESS_TERMCAP_us=$'\E[01;32m'