ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
# **一、相关知识** 给内容加不同的颜色, 可以结合echo -e的参数,内容的颜色用数字表示,范围为30-37,每个数字代表一种颜色。 30-37代表8种不同的字体颜色,40-47代表对于的背景颜色[man console_codes] ### 1) 字体颜色代码 ```shell echo -e "\E[30m 黑色字 oldboy \033[0m" echo -e "\E[31m 红色字 oldboy \033[0m" echo -e "\E[32m 绿色字 oldboy \033[0m" echo -e "\E[33m 棕色字 oldboy \033[0m" echo -e "\E[34m 蓝色字 oldboy \033[0m" echo -e "\E[35m 洋红字 oldboy \033[0m" echo -e "\E[36m 蓝绿字 oldboy \033[0m" echo -e "\E[37m 白色字 oldboy \033[0m" ``` > 所以在脚本中,最好先通过定义变量的方式定义颜色前后缀,然后在对于的地方调用颜色前缀和后缀就行了 ### 2) 背景颜色代码 字的背景颜色对应的数字范围为40-47,代码如下。 ```shell echo -e "\033[40;37m 黑底白字oldboy\033[0m" #<==40m表示黑色背景。 echo -e "\033[41;37m 红底白字oldboy\033[0m" #<==41m表示红色背景。 echo -e "\033[42;37m 绿底白字oldboy\033[0m" #<==42m表示绿色背景。 echo -e "\033[43;37m 棕底白字oldboy\033[0m" #<==43m表示棕色背景。 echo -e "\033[44;37m 蓝底白字oldboy\033[0m" #<==44m表示蓝色背景。 echo -e "\033[45;37m 洋红底白字oldboy\033[0m" #<==45m表示洋红色背景。 echo -e "\033[46;37m蓝绿底白字oldboy\033[0m" #<==46m表示蓝绿色背景。 echo -e "\033[47;30m 白底黑字oldboy\033[0m" #<==47m表示白色背景。 ``` # **二、案例: 开发一个给指定内容加质地更颜色的脚本** 使用case语句,通过脚本传入指定内容和指定颜色,根据指定颜色输出指定内容 * `cat /server/scripts/color.sh` ```shell #!/bin/sh RED_COLOR='\E[1;31m' GREEN_COLOR='\E[1;32m' YELLOW_COLOR='\E[1;33m' BLUE_COLOR='\E[1;34m' RES='\E[0m' function usage(){ echo "error,color must bu{red|green|yellow|blue}" exit 1 } #定义帮助函数 function input(){ if [ $# -ne 2 ] then echo "must input two char" exit 2 fi case "$2" in red) echo -e "$RED_COLOR $1 $RES" ;; green) echo -e "$GREEN_COLOR $1 $RES" ;; yellow) echo -e "$YELLOW_COLOR $1 $RES" ;; blue) echo -e "$BLUE_COLOR $1 $RES" ;; *) usage esac } #定义主函数,并判断输入的参数个数 function main(){ input $1 $2 } main $* ``` * 脚本演示 ![示例](https://www.github.com/noah-luo/imags/raw/master/year/1544842564313.png)