内容提要
文章介绍在Shell中使用echo -e输出ANSI转义码来控制终端文字颜色与格式。格式为\033[背景色;字体色m字符串\033[0m,背景色范围40-49,字体色范围30-39。还列出了高亮、下划线、闪烁、反显、光标移动、清屏、隐藏光标等ANSI控制码。
延伸解读
ANSI转义码的基本结构
文章指出,在Shell中使用echo -e输出ANSI转义码时,格式为\033[背景色;字体色m字符串\033[0m。其中\033[和m之间的数字分别控制背景色和字体色,背景色范围40-49,字体色范围30-39。末尾的\033[0m用于关闭所有属性,避免影响后续输出。理解这一结构是灵活运用颜色控制的基础。
颜色代码的对应关系
文章列出了具体的颜色代码:背景色40-49分别对应黑、深红、绿、黄色、蓝色、紫色、深绿、白色;字体色30-39对应黑、红、绿、黄、蓝色、紫色、深绿、白色。注意背景色和字体色的代码并不完全一致,例如背景41是深红,而字体31是红。使用时需按表选择,避免混淆。
更多ANSI控制功能
除了颜色,文章还介绍了其他ANSI控制码,如\33[1m设置高亮度、\33[4m下划线、\33[5m闪烁、\33[7m反显、\33[8m消隐,以及光标移动(\33[nA上移n行等)、设置光标位置(\33[y;xH)、清屏(\33[2J)、清除行尾(\33[K)、保存/恢复光标位置(\33[s/\33[u)、隐藏/显示光标(\33[?25l/\33[?25h)。这些功能可用于更复杂的终端界面控制。
Q&A
Shell 中 echo -e 怎么设置文字颜色和背景色?
使用格式:echo -e "\033[字背景颜色;字体颜色m字符串\033[0m"。例如 echo -e "\033[41;36m something here \033[0m",其中 41 代表底色,36 代表字的颜色。
ANSI 转义码中背景色和字体色的取值范围是多少?
字背景颜色范围是 40 到 49,字颜色范围是 30 到 39。
Shell 中如何用 ANSI 控制码设置高亮、下划线或闪烁效果?
使用对应的 ANSI 控制码:\33[1m 设置高亮度,\33[4m 下划线,\33[5m 闪烁,\33[7m 反显,\33[8m 消隐。
ANSI 转义码如何移动光标位置?
使用 \33[nA 光标上移 n 行,\33[nB 光标下移 n 行,\33[nC 光标右移 n 行,\33[nD 光标左移 n 行,\33[y;xH 设置光标位置。
Shell 中如何清屏或清除从光标到行尾的内容?
使用 \33[2J 清屏,使用 \33[K 清除从光标到行尾的内容。
ANSI 转义码如何隐藏和显示光标?
使用 \33[?25l 隐藏光标,使用 \33[?25h 显示光标。