什么是 ANSI 颜色代码
🎉 恭喜你问了一个非常实用的问题!ANSI 颜色代码是 Linux 终端中用来控制文本颜色、背景色和格式(如加粗、闪烁)的一种标准编码方式。它可以让你的 Shell 脚本输出更加美观、清晰,甚至像“图形界面”一样有层次感!
🎯 什么是 ANSI 颜色代码?
✅ 简单解释:
ANSI 是美国国家标准协会(American National Standards Institute)制定的一套字符编码标准。
在终端中,使用特殊的 ANSI 转义序列(Escape Sequence),可以告诉终端:“从现在开始用红色显示文字”,“这段文字加粗显示”等等。
⭐ 基本格式
\033[<属性>;<前景色>;<背景色>m<要显示的文字>\033[0m
\033
:转义字符(也可以写成\x1b
)[
:开始设置样式m
:结束设置\033[0m
:重置所有样式(建议每次使用后都重置)
🌈 常见的前景色(字体颜色)
编号 | 颜色 |
---|---|
30 | 黑色 |
31 | 红色 |
32 | 绿色 |
33 | 黄色 |
34 | 蓝色 |
35 | 紫色 |
36 | 青色 |
37 | 白色 |
🎨 常见的背景色
编号 | 颜色 |
---|---|
40 | 黑色背景 |
41 | 红色背景 |
42 | 绿色背景 |
43 | 黄色背景 |
44 | 蓝色背景 |
45 | 紫色背景 |
46 | 青色背景 |
47 | 白色背景 |
💡 常见的属性(可选)
编号 | 含义 |
---|---|
0 | 默认(重置) |
1 | 加粗 |
4 | 下划线 |
5 | 闪烁 |
7 | 反显 |
🧪 实例演示
示例 1:只改变文字颜色
echo -e "\033[31m这是红色文字\033[0m"
echo -e "\033[32m这是绿色文字\033[0m"
echo -e "\033[33m这是黄色文字\033[0m"
示例 2:改变文字颜色 + 背景色 + 加粗
echo -e "\033[1;37;41m警告:系统错误!\033[0m"
输出效果:白色文字 + 红色背景 + 加粗
示例 3:带下划线和闪烁
echo -e "\033[4;35m注意:重要通知!\033[0m"
echo -e "\033[5;31m紧急警报!\033[0m"
🧠 小技巧总结
技巧 | 说明 |
---|---|
echo -e |
必须加上 -e 才能解析转义字符 |
\033[0m |
每次使用完颜色后记得重置,否则后续内容也会受影响 |
定义变量 | 可以把常用颜色定义为变量,便于复用 |
RED='\033[0;31m'
GREEN='\033[0;32m'
NC='\033[0m' # No Color
echo -e "${RED}错误:磁盘空间不足!${NC}"
echo -e "${GREEN}提示:清理成功。${NC}"
🛠️ 实际应用场景举例
🎉 场景一:脚本状态提示更清晰
echo -e "\033[32m✅ 成功:配置文件已生成。\033[0m"
echo -e "\033[33m⚠️ 警告:内存即将耗尽!\033[0m"
echo -e "\033[31m❌ 错误:无法连接数据库。\033[0m"
🎉 场景二:构建菜单界面更专业
echo -e "\033[34m=== 自动化运维工具 ===\033[0m"
echo "1. 备份数据"
echo "2. 清理日志"
echo "3. 重启服务"
echo "0. 退出"
⚠️ 注意事项
问题 | 解决方法 |
---|---|
Windows CMD 不支持 | 推荐使用 PowerShell 或 WSL 终端 |
输出乱码 | 确保终端支持 ANSI 转义码 |
颜色未生效 | 使用 echo -e 并检查语法是否正确 |
脚本执行时颜色失效 | 确保没有重定向或管道干扰输出 |
🧩 更多高级玩法(进阶)
你可以组合多种效果,比如:
# 红底白字加粗
echo -e "\033[1;37;41m🚨 紧急通知:系统将重启!🚨\033[0m"
# 蓝底黄字闪烁
echo -e "\033[5;33;44m⚡ 正在进行高风险操作!⚡\033[0m"
🎯 下一章预告:《Shell read 命令与用户交互》
掌握了 echo
和 ANSI 颜色代码之后,你可以写出漂亮的脚本输出。接下来我们将学习如何让用户输入信息并与脚本互动 —— 使用 read
命令!
需要我继续为你生成下一章内容吗?😊