ANSI转义序列是一种在终端中控制外观和行为的方法,包括设置文本颜色、光标位置、清除屏幕等操作。开发人员可以使用这些序列创建具有各种视觉效果和交互功能的终端应用程序。
字体颜色控制
echo -e "<格式化代码> 输出内容"
# 示例
echo -e "\e[32m 输出绿色文本"
其中,格式化代码控制字体颜色的如下:
字体颜色
\e[30m黑色\e[31m红色\e[32m绿色\e[33m黄色\e[34m蓝色\e[35m粉红\e[36m青色\e[37m白色
字体颜色(亮色)
\e[90m黑色\e[91m红色\e[92m绿色\e[93m黄色\e[94m蓝色\e[95m粉红\e[96m青色\e[97m白色
背景色
\e[40m黑色\e[41m红色\e[42m绿色\e[43m黄色\e[44m蓝色\e[45m粉红\e[46m青色\e[47m白色

其他常用控制代码
\e[0m关闭所有属性\e[1m设置高亮度\e[4m下划线\e[5m闪烁\e[7m反显,撞色显示,显示为白字黑底,或者显示为黑底白字\e[8m消影,字符颜色将会与背景颜色相同\e[nA光标上移 n 行\e[nB光标下移 n 行\e[nC光标右移 n 行\e[nD光标左移 n 行\e[y;xH设置光标位置\e[2J清屏\e[K清除从光标到行尾的内容\e[s保存光标位置\e[u恢复光标位置\e[?25隐藏光标\e[?25h显示光标
BASH变量预设
这里附上BASH的预设变量
#!/bin/bash
# 颜色变量
TEXT_BLACK='\e[30m' # 黑
TEXT_RED='\e[31m' # 红
TEXT_GREEN='\e[32m' # 绿
TEXT_YELLOW='\e[33m' # 黄
TEXT_BLUE='\e[34m' # 蓝
TEXT_PINK='\e[35m' # 粉红
TEXT_CYAN='\e[36m' # 青色
TEXT_WHITE='\e[37m' # 白色
# 暗色系
TEXT_LIGHT_BLACK='\e[90m' # 黑
TEXT_LIGHT_RED='\e[91m' # 红
TEXT_LIGHT_GREEN='\e[92m' # 绿
TEXT_LIGHT_YELLOW='\e[93m' # 黄
TEXT_LIGHT_BLUE='\e[94m' # 蓝
TEXT_LIGHT_PINK='\e[95m' # 粉红
TEXT_LIGHT_CYAN='\e[96m' # 青色
TEXT_LIGHT_WHITE='\e[97m' # 白色
# 背景
BG_BLACK='\e[1;40m' # 黑
BG_RED='\e[1;41m' # 红
BG_GREEN='\e[1;42m' # 绿
BG_YELLOW='\e[1;43m' # 黄
BG_BLUE='\e[1;44m' # 蓝
BG_PINK='\e[1;45m' # 粉红
BG_CYAN='\e[1;46m' # 青色
BG_WHITE='\e[1;47m' # 白色
RES='\e[0m' # 清除格式
# 使用示例
echo -e $RES"-- 字体颜色 --"
echo -e $TEXT_BLACK"黑色"$RES
echo -e $TEXT_RED"红色"$RES
echo -e $TEXT_GREEN"绿色"$RES
echo -e $TEXT_YELLOW"黄色"$RES
echo -e $TEXT_BLUE"蓝色"$RES
echo -e $TEXT_PINK"粉红"$RES
echo -e $TEXT_CYAN"青色"$RES
echo -e $TEXT_WHITE"白色"$RES
echo
echo -e $RES"-- 更明亮 --"
echo -e $TEXT_LIGHT_BLACK"黑色"$RES
echo -e $TEXT_LIGHT_RED"红色"$RES
echo -e $TEXT_LIGHT_GREEN"绿色"$RES
echo -e $TEXT_LIGHT_YELLOW"黄色"$RES
echo -e $TEXT_LIGHT_BLUE"蓝色"$RES
echo -e $TEXT_LIGHT_PINK"粉红"$RES
echo -e $TEXT_LIGHT_CYAN"青色"$RES
echo -e $TEXT_LIGHT_WHITE"白色"$RES
echo
echo -e $RES"-- 背景色 --"
echo -e $BG_BLACK"黑色"$RES
echo -e $BG_RED"红色"$RES
echo -e $BG_GREEN"绿色"$RES
echo -e $BG_YELLOW"黄色"$RES
echo -e $BG_BLUE"蓝色"$RES
echo -e $BG_PINK"粉红"$RES
echo -e $BG_CYAN"青色"$RES
echo -e $BG_WHITE"白色"$RES

