linux echo设置颜色

本文介绍如何利用ANSI转义序列在终端中变换文本颜色,并提供了多个示例来展示不同颜色的实现方式。
echo要变换颜色的时候,要使用参数-e
格式: echo -e "\033[字背景颜色;字体颜色m字符串\033[0m"
例如: 
echo -e "\033[41;36m something here \033[0m"

其中41的位置代表底色, 36的位置是代表字的颜色


注:
1、字背景颜色和文字颜色之间是英文的“""”
2、文字颜色后面有个m
3、字符串前后可以没有空格,如果有的话,输出也是同样有空格


那些ascii code 是对颜色调用的始末. 
\033[ ; m …… \033[0m
让字体变为红色并且不停的闪烁
#echo -e "\033[31m \33[05m 请确认是否要停止当前的squid进程,输入 [Y/N] \033[0m"
或者

#echo -e "\033[31m \033[05m 请确认是否要停止当前的squid进程,输入 [Y/N] \033[0m"


下面看几个例子:

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"
 

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"


字背景颜色范围:40----49 

40:黑 
41:深红 
42:绿 
43:黄色 
44:蓝色 
45:紫色 
46:深绿 
47:白色
字颜色:30-----------39 
30:黑 
31:红 
32:绿 
33:黄 
34:蓝色 
35:紫色 
36:深绿 
37:白色

\33[0m 关闭所有属性 
\33[1m 设置高亮度 
\33[4m 下划线 
\33[5m 闪烁 
\33[7m 反显 
\33[8m 消隐 
\33[30m -- \33[37m 设置前景色 
\33[40m -- \33[47m 设置背景色 
\33[nA 光标上移n行 
\33[nB 光标下移n行 
\33[nC 光标右移n行 
\33[nD 光标左移n行 
\33[y;xH设置光标位置 
\33[2J 清屏 
\33[K 清除从光标到行尾的内容 
\33[s 保存光标位置 
\33[u 恢复光标位置 
\33[?25l 隐藏光标 
\33[?25h 显示光标
Linux中,`echo` 命令可以通过ANSI转义序列来输出带颜色的文本。这些颜色代码可以嵌入到字符串中,并通过 `-e` 选项启用对转义字符的支持。 ### 使用ANSI颜色代码 以下是一些常见的ANSI颜色代码: - 黑色:`\033[30m` - 红色:`\033[31m` - 绿色:`\033[32m` - 黄色:`\033[33m` - 蓝色:`\033[34m` - 洋红色:`\033[35m` - 青色:`\033[36m` - 白色:`\033[37m` 重置颜色为默认值可以使用 `\033[0m`。 ### 示例代码 ```bash # 输出红色文本 echo -e "\033[31mThis is red text\033[0m" # 输出绿色背景的白色文本 echo -e "\033[42m\033[37mWhite text on green background\033[0m" # 输出加粗的黄色文本 echo -e "\033[1;33mBold yellow text\033[0m" ``` ### 定义颜色变量以提高可读性 为了简化颜色的使用,可以将颜色定义为变量,从而提升脚本的可维护性与可读性: ```bash RED='\033[31m' GREEN='\033[32m' YELLOW='\033[33m' NC='\033[0m' # No Color echo -e "${RED}This is red text${NC}" echo -e "${GREEN}This is green text${NC}" echo -e "${YELLOW}This is yellow text${NC}" ``` ### 使用bashj实现更高级的颜色控制 如果需要更高级的颜色控制,可以使用 `bashj` 工具包[^1]。它提供了一种更加直观的方式来处理终端颜色和格式化输出: ```bash #!/usr/bin/bash W="Hello world!" R=130 G=60 B=190 echo u.colored($R,$G,$B,$W) echo u.colored(255,127,0,$W) echo u.red($W) echo u.bold($W) echo u.italic($W) Y=u.yellow($W) echo $Y echo u.bold($Y) ``` 这种方法提供了更丰富的功能,例如基于RGB值的颜色设置、字体加粗、斜体等。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值