bash输出颜色字体

本文介绍如何使用Shell脚本控制终端输出的颜色及格式,包括字体颜色、背景颜色、高亮显示、下划线、闪烁效果等,并提供了一个字体颜色循环闪烁的例子。

转自:http://www.2cto.com/os/201504/393360.html

#!/bin/bash
#
#下面是字体输出颜色及终端格式控制
#字体色30-37
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"

#字背景颜色范围:40-47
echo -e "\033[40;37m黑底白字\033[0m"
echo -e "\033[41;30m红底黑字\033[0m"
echo -e "\033[42;34m绿底蓝字\033[0m"
echo -e "\033[43;34m黄底蓝字\033[0m"
echo -e "\033[44;30m蓝底黑字\033[0m"
echo -e "\033[45;30m紫底黑字\033[0m"
echo -e "\033[46;30m天蓝底黑字\033[0m"
echo -e "\033[47;34m白底蓝字\033[0m"
#.....


#控制选项说明
#\033[0m关闭所有属性
#\033[1m设置高亮度
#\033[4m下划线
echo -e "\033[4;31m下划线红字\033[0m"
#闪烁
echo -e "\033[5;34m红字在闪烁\033[0m"
#反影
echo -e "\033[8m消隐\033[0m "
#



#\033[30m-\033[37m设置前景色
#\033[40m-\033[47m设置背景色
#\033[nA光标上移n行
#\033[nB光标下移n行
echo -e "\033[4A光标上移4行\033[0m"

#\033[nC光标右移n行
#\033[nD光标左移n行
#\033[y;xH设置光标位置
#\033[2J清屏
#\033[K清除从光标到行尾的内容
echo -e "\033[K清除光标到行尾的内容\033[0m"

#\033[s保存光标位置
#\033[u恢复光标位置
#\033[?25|隐藏光标
#\033[?25h显示光标
echo -e "\033[?25l隐藏光标\033[0m"
echo -e "\033[?25h显示光标\033[0m"


#下面的这个例子是字体不停的闪烁。
#!/bin/bash
#
a=30
b=41
while true
do
echo -e "\033[${a}m光辉女郎\033[0m"
echo -e "\033[${a}m的吗西亚\033[0m"
echo -e "\033[${a}m洛克萨斯\033[0m"
a=$(($(($a%7))+30))
b=$(($(($b%7))+40))
#每次让字体颜色在30-37转换
#每次让背景颜色在40-47转换
echo -e "\033[4A\033[0m"
done
<think>好的,我现在需要帮用户解决在Bash中使用echo命令显示彩色文本的问题。首先,我得回忆一下之前用户提到的引用内容,比如引用[1]里提到的ANSI转义序列定义颜色常量,然后通过echo-e来输出颜色的文本。用户可能已经看过示例,但需要更详细的步骤说明。首先,我应该解释ANSI转义码的基本结构,比如颜色代码的格式,比如\033[0;31m表示红色。然后需要说明如何将这些代码嵌入到echo命令中,特别是使用-e选项来启用转义字符解析。还要注意颜色代码之后要用\033[0m来重置颜色,避免后续文本也变色。接下来,用户可能需要具体的例子,比如如何定义变量来存储颜色代码,这样在脚本中更方便使用。比如定义RED='\033[0;31m',然后使用${RED}插入颜色。同时,要提醒用户echo命令中必须使用双引号来让变量展开,或者用-e选项,否则转义符不会被识别。 另外,用户可能遇到的问题是颜色不显示,这时候需要检查是否漏掉了-e选项,或者忘记重置颜色。可能需要指出常见错误,比如在脚本中未正确使用引号或转义字符,导致输出的是原始字符串而不是颜色代码。 然后,根据用户之前的引用,引用[2]提到echo输出换行和格式化文本,可能需要补充其他格式,比如背景色或加粗、下划线等效果。这部分可以扩展一下,给出更多ANSI代码的例子,比如背景色是4x,而文字色是3x,加粗是1等等。 最后,生成相关问题的时候,要考虑用户可能的后续需求,比如如何组合颜色和样式,如何在脚本中更高效地管理颜色,或者如何在printf中实现类似效果。这些问题可以帮助用户深入理解并解决更复杂的情况。总结一下,回答的结构应该是先介绍原理,再给出具体步骤和示例代码,然后指出注意事项和常见问题,最后提供相关问题引导进一步学习。确保使用中文,LaTeX格式正确,行内公式用$...$,独立公式用$$...$$,但在这个问题中可能用不上数学公式,所以重点放在代码和格式说明上。</think>在Bash中通过`echo`输出彩色文本需要借助ANSI转义序列。以下是具体实现方法: ### 一、基础颜色设置 颜色代码格式为:`\033[格式代码;颜色代码m`。例如红色文本使用: ```bash echo -e "\033[0;31m这是红色文本\033[0m" ``` - `0;31m`表示红色前景色 - `\033[0m`用于重置颜色样式[^1] ### 二、定义颜色常量(推荐) 在脚本开头定义颜色变量更易维护: ```bash RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[0;33m' NC='\033[0m' # 颜色重置 echo -e "${RED}错误信息${NC}" echo -e "${GREEN}成功提示${NC}" ``` ### 三、颜色代码对照表 | 颜色 | 前景色代码 | 背景色代码 | |--------|------------|------------| | 黑色 | 30 | 40 | | 红色 | 31 | 41 | | 绿色 | 32 | 42 | | 黄色 | 33 | 43 | | 蓝色 | 34 | 44 | | 品红 | 35 | 45 | | 青色 | 36 | 46 | | 白色 | 37 | 47 | ### 四、组合样式 通过分号分隔多个代码实现组合效果: ```bash # 黄色背景+红色文字+下划线 echo -e "\033[4;31;43m警告信息\033[0m" ``` ### 五、注意事项 1. 必须使用`-e`参数启用转义字符解析 2. 推荐使用双引号包裹字符串(单引号会禁用转义) 3. 在管道或重定向时可能需要添加`-n`参数禁用自动换行[^2]
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值