其他3-给输出内容加颜色
一、相关知识
给内容加不同的颜色, 可以结合echo -e的参数,内容的颜色用数字表示,范围为30-37,每个数字代表一种颜色。
30-37代表8种不同的字体颜色,40-47代表对于的背景颜色[man console_codes]
1) 字体颜色代码
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,代码如下。
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
#!/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 $*
- 脚本演示
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· .NET Core 中如何实现缓存的预热?
· 三行代码完成国际化适配,妙~啊~
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?