您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# 怎么使用shell中的echo显示内容带颜色
在Shell脚本中,`echo`命令是最常用的输出工具之一。默认情况下,它只能输出普通文本,但通过结合ANSI转义码,我们可以实现彩色输出、背景色设置以及文本特效。本文将详细介绍如何使用`echo`命令显示带颜色的内容。
## 一、ANSI转义码基础
ANSI转义序列是以`\033[`或`\e[`开头的特殊字符组合,格式为:
```bash
\033[<代码>m
其中:
- \033
或\e
代表ESC字符(ASCII 27)
- [
是起始符号
- <代码>
是控制颜色的数字
- m
表示结束
颜色 | 代码 |
---|---|
黑色 | 30 |
红色 | 31 |
绿色 | 32 |
黄色 | 33 |
蓝色 | 34 |
紫色 | 35 |
青色 | 36 |
白色 | 37 |
默认 | 39 |
颜色 | 代码 |
---|---|
黑色 | 40 |
红色 | 41 |
绿色 | 42 |
黄色 | 43 |
蓝色 | 44 |
紫色 | 45 |
青色 | 46 |
白色 | 47 |
默认 | 49 |
特效 | 代码 |
---|---|
重置所有 | 0 |
加粗/高亮 | 1 |
下划线 | 4 |
闪烁 | 5 |
反色 | 7 |
隐藏 | 8 |
# 红色文本
echo -e "\033[31m这是红色文本\033[0m"
# 绿色背景
echo -e "\033[42m这是绿色背景\033[0m"
# 黄色文本+蓝色背景
echo -e "\033[33;44m黄字蓝底\033[0m"
# 加粗的红色文本
echo -e "\033[1;31m加粗红色\033[0m"
RED='\033[31m'
GREEN='\033[32m'
RESET='\033[0m'
echo -e "${RED}错误信息${RESET}"
echo -e "${GREEN}成功信息${RESET}"
# 前景色
echo -e "\033[38;5;82m浅绿色文本\033[0m"
# 背景色
echo -e "\033[48;5;196m红色背景\033[0m"
# 前景色
echo -e "\033[38;2;255;100;0m橙色文本\033[0m"
# 背景色
echo -e "\033[48;2;50;100;200m自定义背景\033[0m"
color_echo() {
local color=$1
shift
case $color in
black) echo -e "\033[30m$@\033[0m" ;;
red) echo -e "\033[31m$@\033[0m" ;;
green) echo -e "\033[32m$@\033[0m" ;;
yellow) echo -e "\033[33m$@\033[0m" ;;
blue) echo -e "\033[34m$@\033[0m" ;;
magenta) echo -e "\033[35m$@\033[0m" ;;
cyan) echo -e "\033[36m$@\033[0m" ;;
white) echo -e "\033[37m$@\033[0m" ;;
*) echo "$@" ;;
esac
}
# 使用示例
color_echo red "这是红色警告"
color_echo green "操作成功"
-e
参数:echo -e
才能解释转义字符\033[0m
恢复默认log() {
local level=$1
shift
case $level in
INFO) echo -e "\033[32m[INFO] $@\033[0m" ;;
WARN) echo -e "\033[33m[WARN] $@\033[0m" ;;
ERROR) echo -e "\033[31m[ERROR] $@\033[0m" ;;
esac
}
echo -e "\033[44;37m====== 主菜单 ======\033[0m"
echo -e "\033[32m1. 开始安装\033[0m"
echo -e "\033[33m2. 查看配置\033[0m"
echo -e "\033[31m3. 退出\033[0m"
通过ANSI转义码,我们可以轻松实现Shell脚本中的彩色输出,大大提升脚本的可读性和用户体验。建议在实际开发中将颜色代码封装成函数或变量,既能保证代码整洁,也便于统一管理样式。
提示:可以通过
tput
命令获取更跨终端的颜色控制方案,但echo
+ANSI码的方式在大多数场景下已经足够使用。 “`
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。