在类Unix操作系统的日常运维与开发工作中,Shell脚本是提升效率的得力助手,它能将一系列繁琐的操作自动化,帮我们节省大量时间。但默认情况下,Shell脚本的输出都是单调的黑白样式,长时间查看很容易产生视觉疲劳,关键信息也难以快速捕捉。其实,只需简单几步,我们就能给Shell脚本的输出“穿上彩衣”,让它既美观又实用。今天,就来详细聊聊如何在Shell脚本中设置文本颜色、字体样式和背景色。
认识Shell脚本:自动化的基础
首先,我们得明确什么是Shell脚本。简单来说,它就是一份命令清单,Shell(一种执行命令的程序)会按照顺序依次执行这些命令。无论是简单地输出一段提示文本,还是复杂地按特定流程运行多个命令完成系统部署,Shell脚本都能胜任。
在众多Shell类型中,Bash(Bourne Again SHell)是最常用的一种。它在保留传统Shell功能的基础上,新增了很多实用特性,不仅让编写脚本更加便捷,还能提升我们在终端中的操作体验,所以目前大多数Shell脚本都基于Bash编写。
色彩魔法的关键:ANSI转义序列
要让Shell脚本的输出呈现出丰富的色彩和样式,核心在于使用ANSI转义序列。这是一组特殊的代码,终端能够识别这些代码,并根据代码指令改变文本的显示效果,比如颜色、字体粗细、是否下划线等。
下面为大家整理了常用的ANSI转义序列代码,记住这些,就能轻松开启Shell脚本的“色彩之旅”。
1. 文本颜色代码
通过这些代码,可以改变文本本身的颜色,其中“文本重置”代码非常重要,使用完彩色文本后,一定要用它将颜色恢复为默认,避免后续输出持续受影响。
| 效果 | 代码 |
|---|---|
| 文本重置 | \e[0m |
| 黑色文本 | \e[0;30m |
| 红色文本 | \e[0;31m |
| 绿色文本 | \e[0;32m |
| 黄色文本 | \e[0;33m |
| 蓝色文本 | \e[0;34m |
| 紫色文本 | \e[0;35m |
| 青色文本 | \e[0;36m |
| 白色文本 | \e[0;37m |
2. 背景颜色代码
如果想让文本背景呈现不同颜色,只需将文本颜色代码中第二个数字改为4即可,具体代码如下:
| 效果 | 代码 |
|---|---|
| 黑色背景 | \e[40m |
| 红色背景 | \e[41m |
| 绿色背景 | \e[42m |
| 黄色背景 | \e[43m |
| 蓝色背景 | \e[44m |
| 紫色背景 | \e[45m |
| 青色背景 | \e[46m |
| 白色背景 | \e[47m |
3. 字体样式代码
除了颜色,我们还能调整字体样式,常见的加粗和下划线样式对应的代码如下:
| 效果 | 代码 |
|---|---|
| 加粗文本 | \e[1m |
| 下划线文本 | \e[4m |
实战操作:打印彩色与特殊样式文本
了解了ANSI转义序列后,接下来通过实际示例,看看如何在Shell脚本中运用这些代码。
1. 打印单一颜色文本
如果想打印绿色的“Hello, world!”,可以使用echo命令,配合-e选项(该选项能让echo识别并解析ANSI转义序列),具体命令如下:
echo -e "\e[0;32mHello, world!\e[0m"
这里,\e[0;32m将文本设置为绿色,\e[0m在文本结束后将颜色重置为默认,避免影响后续输出。
2. 借助变量简化代码
如果脚本中多次使用不同颜色,直接写代码会显得杂乱,且不易修改。这时,我们可以将颜色代码定义为变量,让脚本更易读、更易维护。例如:
RED='\e[0;31m'
NC='\e[0m' # 代表“无颜色”,用于重置
echo -e "I ${RED}love${NC} shell scripting"
执行这段脚本后,会输出“I love shell scripting”,其中“love”一词会以红色显示,其余部分为默认颜色。
3. 设置字体样式与背景色
除了文本颜色,我们还能组合使用字体样式和背景色代码。比如,打印加粗且带有蓝色背景的文本:
echo -e "\e[1m\e[44mBold text with blue background\e[0m"
再比如,打印下划线且带有黄色背景的文本:
echo -e "\e[4m\e[43mUnderlined text with yellow background\e[0m"
同样,记得在文本结束后使用\e[0m重置所有样式和颜色。
总结
通过ANSI转义序列,我们能轻松为Shell脚本的输出添加色彩和特殊样式,让原本单调的命令行输出变得生动易懂,关键信息也能一目了然。但在使用过程中,有一点需要注意:不要过度追求复杂的样式,保持代码的简洁和高效始终是首要原则。
















