shell脚本输出带文本颜色背景颜色自定义样式格式内容
shell脚本中 echo 和 printf 都可以输出内容。示例1:
echo -e "\033[43;35m david use echo say Hello World \033[0m \n"
printf "\033[44;36m david use printf say Hello World \033[0m \n"
echo -e "\033[47;30;5m david use echo say \033[0m Hello World \n"
输出效果如下:
它的格式是这样的:
echo -e "\033[字背景颜色;字体颜色m 字符串 \033[0m" 或者
printf "\033[字背景颜色;字体颜色m 字符串 \033[0m" 或者
echo -e "\033[字背景颜色;字体颜色m;ascii码m 字符串 \033[0m 字符串(can null) \n"
格式说明
shell脚本中echo命令是内容显示,echo显示带颜色需要使用参数 -e
格式如下:
echo -e "\033[字背景颜色;文字颜色m字符串\033[0m"
例如:
echo -e "\033[41;36m something here \033[0m"
其中41的位置代表底色, 36的位置是代表字的颜色
注:
- 1、字背景颜色和文字颜色之间是英文的";"
- 2、文字颜色后面有个m
- 3、字符串前后可以没有空格,如果有的话,输出也是同样有空格
- 特效可以叠加,需要使用“;”隔开,例如:闪烁+下划线+白底色+黑字为 \033[5;4;47;30m闪烁+下划线+白底色+黑字为\033[0m
再来看示例1的第3个命令:
echo -e "\033[47;30;5m david use echo say \033[0m Hello World \n"
这个命令解释:
47 代表背景色为白色,
30 代表字体为黑色,
5 代表字体闪烁,
0 代表关闭所有属性
输出字符 “david use echo say”,然后重新设置屏幕到缺省设置,输出字符 “Hello World”后颜色回复正常。
-e是echo的一个可选项,用于激活特殊字符的解析器, 也就是对反斜线转义符(即\)的解释。\033引导非常规字符序列。意味着设置属性然后结束非常规字符序列,这里起效果的字符是47;30;5和0。修改47;30;5可以生成不同颜色的组合,数值和编码的前后顺序没有关系。
组合命令:
示例2,组合命令:
echo -e "\033[20;1H\033[1;4;32m david use echo say \033[0m Hello World \n"
这行命令首先\033[20;1H将光标移动到终端第20行第1列,之后的\033[1;4;32m将文本属性设置为高亮、带下划线且颜色为绿色,然后输出Hello,world;最后\033[0m将终端属性设为缺省,这样就不会看到连命令完成后的命令提示符也变了样儿了。 输出效果如下:
我们可以通过各种命令的组合可以实现对终端输出地复杂控制。
输出特效格式控制:
\033[0m 关闭所有属性
\033[1m 设置高亮度
\03[4m 下划线
\033[5m 闪烁
\033[7m 反显
\033[8m 消隐
\033[30m -- \033[37m 设置前景色
\033[40m -- \033[47m 设置背景色
例:
echo -e "\033[31m 红色字 \033[0m"
echo -e "\033[34m 黄色字 \033[0m"
echo -e "\033[41;33m 红底黄字 \033[0m"
echo -e "\033[41;37m 红底白字 \033[0m"
字颜色范围(前景颜色):30—–39
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"
38:在缺省的前景颜色上设置下划线
39:在缺省的前景颜色上关闭下划线
补充:上面的例子中,每行后面都有 \033[0m ,是为了使终端显示的颜色恢复到修改背景和字体颜色之前的状态。
字背景颜色范围(背景颜色):40~47
40:黑
41:深红
42:绿
43:黄色
44:蓝色
45:紫色
46:深绿
47:白色
49:设置缺省黑色背景
光标位置等的格式控制:
\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 显示光标
示例3:
echo -e "\033[0m none \033[0m"
echo -e "\033[30m black \033[0m"
echo -e "\033[1;30m dark_gray \033[0m"
echo -e "\033[0;34m blue \033[0m"
echo -e "\033[1;34m light_blue \033[0m"
echo -e "\033[0;32m green \033[0m"
echo -e "\033[1;32m light_green \033[0m"
echo -e "\033[0;36m cyan \033[0m"
echo -e "\033[1;36m light_cyan \033[0m"
输出效果如下:
echo -e "\033[0;31m red \033[0m"
echo -e "\033[1;31m light_red \033[0m"
echo -e "\033[0;35m purple \033[0m"
echo -e "\033[1;35m light_purple \033[0m"
echo -e "\033[0;33m brown \033[0m"
echo -e "\033[1;33m yellow \033[0m"
echo -e "\033[0;37m light_gray \033[0m"
echo -e "\033[1;37m white \033[0m"
输出效果如下:
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"
echo -e "\033[4;31m 下划线红字 \033[0m"
echo -e "\033[5;31m 红字在闪烁 \033[0m"
echo -e "\033[8m 消隐 \033[0m "
输出效果如下:
范围参考:
0 重新设置属性到缺省设置
1 设置粗体
2 设置一半亮度(模拟彩色显示器的颜色)
4 设置下划线(模拟彩色显示器的颜色)
5 设置闪烁
7 设置反向图象
8 消隐
22 设置一般密度
24 关闭下划线
25 关闭闪烁
27 关闭反向图象
// 字体颜范围(前景颜色):30~39
30:黑
31:红
32:绿
33:黄
34:蓝色
35:紫色
36:深绿
37:白色
38:在缺省的前景颜色上设置下划线
39:在缺省的前景颜色上关闭下划线
// 字背景颜色范围(背景颜色):40~49
40:黑
41:深红
42:绿
43:黄色
44:蓝色
45:紫色
46:深绿
47:白色
nA 光标上移n行
nB 光标下移n行
nC 光标右移n行
nD 光标左移n行
y;xH设置光标位置
2J 清屏
K 清除从光标到行尾的内容
s 保存光标位置
u 恢复光标位置
?25l 隐藏光标
?25h 显示光标
预先定义颜色变量
如果是通过bash脚本执行,多次频繁的输出展示,那么可以通过变量简化样式格式引用:
#! /bin/bash
## author:xiongzaiqiren
RED_COLOR='\E[1;31m'
YELOW_COLOR='\E[1;33m'
BLUE_COLOR='\E[1;34m'
RESET='\E[0m'
#需要使用echo -e
echo -e "${RED_COLOR}===david say red color===${RESET}"
echo -e "${YELOW_COLOR}===david say yelow color===${RESET}"
echo -e "${BLUE_COLOR}===david say green color===${RESET}"
输出效果如下:
将自定义颜色格式定义成变量,然后在具体工作是运用的实例。
定义颜色动作, 把echo -en也定义到变量中。使用时直接调用颜色动作即可。
倒计时(利用\r来实现回到行首覆盖输出)
#! /bin/bash
## author:xiongzaiqiqren
##### 定义颜色动作, 把echo -en也定义到变量中
SETCOLOR_BLACK="echo -en \\E[1;30m"
SETCOLOR_FAILURE="echo -en \\E[1;31m"
SETCOLOR_SUCCESS="echo -en \\E[1;32m"
SETCOLOR_WARNING="echo -en \\E[1;33m"
SETCOLOR_INFO="echo -en \\E[1;34m"
SETCOLOR_REMIND="echo -en \\E[1;35m"
SETCOLOR_BUG="echo -en \\E[1;36m"
SETCOLOR_WHITE="echo -en \\E[1;37m"
SETCOLOR_NORMAL="echo -en \\E[0;39m"
SETCOLOR_FLICKER="echo -en \\E[5m"
##### 使用时直接调用颜色动作即可
$SETCOLOR_BLACK && echo BLACK
$SETCOLOR_FAILURE && echo FAILURE
$SETCOLOR_SUCCESS && echo SUCCESS
$SETCOLOR_WARNING && echo WARNING
$SETCOLOR_INFO && echo INFO
$SETCOLOR_BUG && echo BUG
$SETCOLOR_REMIND && echo REMIND
$SETCOLOR_WHITE && echo WHITE
$SETCOLOR_NORMAL && echo NORMAL
$SETCOLOR_FLICKER && echo FLICKER
$SETCOLOR_NORMAL && echo NORMAL
##### 其他测试
echo "输出内容,行末自带换行符";
echo -n "输出内容,取消行末换行符(内容输出后不换行)";
echo "这是接着前面的(没有新的行)";
echo -e "\e[1;33;5m 闪烁文字 \e[0m"
# 倒计时(利用\r来实现回到行首覆盖输出)
for i in {1..100}; do echo -en "\r $i%"; sleep 1; done;
以上代码在Linux服务器上保存为 myDisplay.sh 文件,并赋予可执行权限。然后看到效果。
运行结果如图:
参考:Shell echo命令
shell脚本输出带文本颜色背景颜色自定义样式格式内容的更多相关文章
- (转)shell脚本输出带颜色字体
shell脚本输出带颜色字体 原文:http://blog.csdn.net/andylauren/article/details/60873400 输出特效格式控制:\033[0m 关闭所有属性 ...
- linux BASH shell下设置字体及背景颜色
BASH shell下设置字体及背景颜色 echo -e "\e[31mtest\e[41m" \e[30m 将字符的显示颜色改为黑色 \e[31m 将字符的显示颜色改为红色 \e ...
- 设置PyCharm中选择文本的背景颜色和代码中和选中单词相同单词的背景颜色
1 设置选中单词的背景颜色 首先进入File->Setting->Editor->Color Scheme后复制一个存在的颜色主题作为自定义的颜色主题(默认的颜色主题是无法修改的,也 ...
- shell脚本--显示文本内容
shell脚本显示文本内容及相关的常用命令有cat.more.less.head.tail.nl 首先是cat,cat最常用的就是一次性显示文件的所有内容,如果一个文件的内容很多的话,那么就不是很方便 ...
- shell编程系列24--shell操作数据库实战之利用shell脚本将文本数据导入到mysql中
shell编程系列24--shell操作数据库实战之利用shell脚本将文本数据导入到mysql中 利用shell脚本将文本数据导入到mysql中 需求1:处理文本中的数据,将文本中的数据插入到mys ...
- Bootstrap -- 文本,背景,其他样式
Bootstrap -- 文本,背景,其他样式 1. 文本样式:展示了不同的文本颜色 使用文本样式: <!DOCTYPE html> <html> <head> & ...
- shell脚本 ------ 输出带颜色的字体
shell脚本中echo显示内容带颜色显示,echo显示带颜色,需要使用参数-e 格式如下: echo -e “\033[字背景颜色:文字颜色m字符串\033[0m” 例如: echo -e “\03 ...
- Linux下Shell脚本输出带颜色文字
文本终端的颜色可以使用“ANSI非常规字符序列”来生成.举例: echo -e "\033[44;37;5m ME \033[0m COOL" 以上命令设置作用如下: 背景色为蓝色 ...
- jenkins调用shell脚本 输出带颜色字体
jenkins需要安装AnsiColor插件在构建环境项选择“color ansi console output” 安装插件AnsiColor shell 脚本相关颜色设置 echo -e " ...
- shell脚本输出带颜色字体
#!/bin/bash # #下面是字体输出颜色及终端格式控制 #字体色范围:30-37 echo -e "\033[30m 黑色字 \033[0m" echo -e " ...
随机推荐
- isPrimitive:检测数据是不是原始数据
function isPrimitive(value) { return isStatic(value) || typeof value === 'symbol}
- P4253 SCOI2015 小凸玩密室
P4253 SCOI2015 小凸玩密室 一道紫色的 dp. 思路 首先读题: 要保证任意时刻所有被点亮的灯泡必须连通 在点亮一个灯泡后必须先点亮其子树所有灯泡才能点亮其他灯泡 考虑设 \(g[u][ ...
- 答题判题程序题目集 1~3 的总结性 Blog
前言 1.1 题目集概述 答题判题程序 - 1: 字符串解析:题目内容和答题内容都是按照特定格式给出的字符串,程序需要能正确地拆分和解析这些字符串,然后进行匹配. 对象和类的使用:为了更好地管理题目和 ...
- C#-公众号H5页面授权获取用户code、openid、unionid
一:配置信息 公众号设置: 1:设置 IP白名单(所在的服务器ip).记录公众号APPID和APPsecret; 2:设置 网页授权域名; 二:页面授权----[html中获取code] 1:页面引入 ...
- 二、FreeRTOS学习笔记-移植
FreeRTOS移植 首先准备一个基础工程,stm32标准库或者HAL库,本实验使用HAL库版本的内存管理实验进行移植 移植步骤: 1 第一步:添加FreeRTOS源码(添加FreeRTOS源码的目的 ...
- python之高级数据结构Collections
1. Collections collections模块包含了内建类型之外的一些有用的工具,例如Counter.defaultdict.OrderedDict.deque以及nametuple.其中C ...
- Python3 print不输出回车符
Python3 print的函数原型: print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False) objects ---- 输出 ...
- vue使用高德地图初始化坑
使用的时候有时候会报除Amap没有定义之外的错如 TypeError: v.w.uh is not a constructor Uncaught TypeError: Cannot read prop ...
- Element Plus组件el-select回显异常
前情 公司有经常需要做一些后台管理页面,我们选择了Element Plus,它是基于 Vue 3,面向设计师和开发者的组件库,是Vue框架生态中比较火的UI组件库,组件库丰富易用,组件链接:一个 Vu ...
- VTK 显示3D模型的网格线(线框/wireframe)
在VTK9.1.0在Windows10+VS2019+Qt 5.15.2环境下编译安装的Qt例子中,想显示球体表面的网格线(线框/wireframe),设置actor的EdgeVisibilityOn ...