在计算机编程世界中,颜色不仅仅是一种视觉效果,它也是一种信息传递的工具。特别是在linux的命令行界面,颜色的使用可以极大地提升我们的工作效率。
今天,我们就来深入探讨一下在linux中如何更改 echo 命令的输出颜色,让代码更加生动、易读。
一、快速入门
在shell脚本中定义颜色变量,使用 echo -e 调用变量。定义变量的时候,把echo -e定义到变量中,然后输出变量。
格式及选项如下所示:
\033[显示方式;前景色;背景色m
| 说明 | |
|---|---|
| 显示方式 | 0(默认值)、1(高亮)、22(非粗体)、4(下划线)、24(非下划线)、5(闪烁)、25(非闪烁)、7(反显)、27(非反显) |
| 前景色 | 30(黑色)、31(红色)、32(绿色)、 33(黄色)、34(蓝色)、35(洋红)、36(青色)、37(白色) |
| 背景色 | 40(黑色)、41(红色)、42(绿色)、 43(黄色)、44(蓝色)、45(洋红)、46(青色)、47(白色) |
示例如下图所示:
echo -e "\033[1;31;42mhelloworld\033[0m"

字颜色:30—–37
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"
字背景颜色范围:40—–47
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"
其他内容
# 关闭所有属性 echo -e "\33[0m" # 设置高亮度 echo -e "\33[1m" # 下划线 echo -e "\33[4m" # 闪烁 echo -e "\33[5m" # 反显 echo -e "\33[7m" # 消隐 echo -e "\33[8m"
二、基本使用
2.1 对于常规的输出
# reset
color_off='\033[0m' # text reset
# regular colors
black='\033[0;30m' # black
red='\033[0;31m' # red
green='\033[0;32m' # green
yellow='\033[0;33m' # yellow
blue='\033[0;34m' # blue
magenta='\033[0;35m' # magenta
cyan='\033[0;36m' # cyan
white='\033[0;37m' # white
echo -e "${red}i like linux${color_off} normal."
0; 是默认值,可以忽略。
测试字体颜色
echo -e "e[1;30m linux e[0m" ## 30 黑色 echo -e "e[1;31m linux e[0m" ## 31 红色 echo -e "e[1;32m linux e[0m" ## 32 绿色 echo -e "e[1;33m linux e[0m" ## 33 黄色 echo -e "e[1;34m linux e[0m" ## 34 蓝色 echo -e "e[1;35m linux e[0m" ## 35 紫色 echo -e "e[1;36m linux e[0m" ## 36 天蓝色 echo -e "e[1;37m linux e[0m" ## 37 白色

测试背景色并高亮显示
echo -e "e[1;41m red bcakground e[0m" ## 41 红色 echo -e "e[1;40m red bcakground e[0m" ## 40 黑色 echo -e "e[1;0m red bcakground e[0m" ## 0 重置 echo -e "e[1;42m red bcakground e[0m" ## 42 绿色 echo -e "e[1;43m red bcakground e[0m" ## 43 黄色 echo -e "e[1;44m red bcakground e[0m" ## 44 蓝色 echo -e "e[1;45m red bcakground e[0m" ## 45 紫色 echo -e "e[1;46m red bcakground e[0m" ## 46 天蓝色 echo -e "e[1;47m red bcakground e[0m" ## 47 白色 echo -e "e[5;47m red bcakground e[0m" ## 5 表示闪烁

2.2 对于字体加粗的输出
color_off='\033[0m' # text reset
# bold
bblack='\033[1;30m' # black
bred='\033[1;31m' # red
bgreen='\033[1;32m' # green
byellow='\033[1;33m' # yellow
bblue='\033[1;34m' # blue
bmagenta='\033[1;35m' # magenta
bcyan='\033[1;36m' # cyan
bwhite='\033[1;37m' # white
echo -e "${bgreen}i like linux${color_off} bold."
2.3 对于字体斜体的输出
color_off='\033[0m' # text reset
# italic
iblack='\033[3;30m' # black
ired='\033[3;31m' # red
igreen='\033[3;32m' # green
iyellow='\033[3;33m' # yellow
iblue='\033[3;34m' # blue
imagenta='\033[3;35m' # magenta
icyan='\033[3;36m' # cyan
iwhite='\033[3;37m' # white
echo -e "${iyellow}i like linux${color_off} italic."
2.4 对于带下划线的输出
color_off='\033[0m' # text reset
# underline
ublack='\033[4;30m' # black
ured='\033[4;31m' # red
ugreen='\033[4;32m' # green
uyellow='\033[4;33m' # yellow
ublue='\033[4;34m' # blue
umagenta='\033[4;35m' # magenta
ucyan='\033[4;36m' # cyan
uwhite='\033[4;37m' # white
echo -e "${ublue}i like linux${color_off} underline."
2.5 对于闪烁效果的输出
color_off='\033[0m' # text reset
# slow blink
sbblack='\033[5;30m' # black
sbred='\033[5;31m' # red
sbgreen='\033[5;32m' # green
sbyellow='\033[5;33m' # yellow
sbblue='\033[5;34m' # blue
sbmagenta='\033[5;35m' # magenta
sbcyan='\033[5;36m' # cyan
sbwhite='\033[5;37m' # white
echo -e "${sbmagenta}i like linux${color_off} slow blink."
三、总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
发表评论