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脚本输出带文本颜色背景颜色自定义样式格式内容的更多相关文章

  1. (转)shell脚本输出带颜色字体

    shell脚本输出带颜色字体 原文:http://blog.csdn.net/andylauren/article/details/60873400 输出特效格式控制:\033[0m  关闭所有属性  ...

  2. linux BASH shell下设置字体及背景颜色

    BASH shell下设置字体及背景颜色 echo -e "\e[31mtest\e[41m" \e[30m 将字符的显示颜色改为黑色 \e[31m 将字符的显示颜色改为红色 \e ...

  3. 设置PyCharm中选择文本的背景颜色和代码中和选中单词相同单词的背景颜色

    1 设置选中单词的背景颜色 首先进入File->Setting->Editor->Color Scheme后复制一个存在的颜色主题作为自定义的颜色主题(默认的颜色主题是无法修改的,也 ...

  4. shell脚本--显示文本内容

    shell脚本显示文本内容及相关的常用命令有cat.more.less.head.tail.nl 首先是cat,cat最常用的就是一次性显示文件的所有内容,如果一个文件的内容很多的话,那么就不是很方便 ...

  5. shell编程系列24--shell操作数据库实战之利用shell脚本将文本数据导入到mysql中

    shell编程系列24--shell操作数据库实战之利用shell脚本将文本数据导入到mysql中 利用shell脚本将文本数据导入到mysql中 需求1:处理文本中的数据,将文本中的数据插入到mys ...

  6. Bootstrap -- 文本,背景,其他样式

    Bootstrap -- 文本,背景,其他样式 1. 文本样式:展示了不同的文本颜色 使用文本样式: <!DOCTYPE html> <html> <head> & ...

  7. shell脚本 ------ 输出带颜色的字体

    shell脚本中echo显示内容带颜色显示,echo显示带颜色,需要使用参数-e 格式如下: echo -e “\033[字背景颜色:文字颜色m字符串\033[0m” 例如: echo -e “\03 ...

  8. Linux下Shell脚本输出带颜色文字

    文本终端的颜色可以使用“ANSI非常规字符序列”来生成.举例: echo -e "\033[44;37;5m ME \033[0m COOL" 以上命令设置作用如下: 背景色为蓝色 ...

  9. jenkins调用shell脚本 输出带颜色字体

    jenkins需要安装AnsiColor插件在构建环境项选择“color ansi console output” 安装插件AnsiColor shell 脚本相关颜色设置 echo -e " ...

  10. shell脚本输出带颜色字体

    #!/bin/bash # #下面是字体输出颜色及终端格式控制 #字体色范围:30-37 echo -e "\033[30m 黑色字 \033[0m" echo -e " ...

随机推荐

  1. nsenter 常用操作

    nsenter 是一个可以用来进入到目标程序说在 namespace 中运行命令的工具,一般可以用于在容器外 debug 容器中运行的程序.简单记录一下 nsenter 的常用用法. 常用参数 最常用 ...

  2. [异常笔记] zookeeper集群启动异常:Error contacting service. It is probably not running.

    報錯信息 zookeeper服務已經啓動,但是狀態是Error contacting service. It is probably not running. 2021-02-23 21:00:41, ...

  3. java之封装日期工具类DateUtils

    整合日期工具类DateUtils dateUtils日期工具类封装-各类格式方法 pom文件引入 <dependency> <groupId>cn.hutool</gro ...

  4. SSM基础知识

    SSM整合 前面我们已经把Mybatis.Spring和SpringMVC三个框架进行了学习,那现在我们把这三个框架整合在一起,来完成我们的业务功能开发,具体如何来整合,我们一步步来学习. 流程分析 ...

  5. 卡特兰数 Catalan 数列

    卡特兰数 Catalan 数列 引入 有一个无限大的栈,进栈的顺序为 \(1,2,\cdots,n\),求有多少种不同的出栈序列. 设 \(h[n]\) 为 \(n\) 个数的出栈序列方案数. 可以这 ...

  6. VUE3刷新页面报错:Uncaught SyntaxError: Unexpected token ‘<‘

    今天用vue3配置嵌套路由时,发现刷新页面后,页面变为空白,打开控制台发现报错: Uncaught SyntaxError: Unexpected token '<' 解决方法: 修改vue.c ...

  7. 西门子PLC与上位机通信方案梳理

    一.前言 大家好!我是付工. 西门子PLC是工控领域使用非常多的一种PLC品牌,对于上位机开发人员来说,对于西门子PLC的通信,我们一般可以采取哪些通信方式呢? 今天跟大家分享一下上位机实现与西门子P ...

  8. jumpserver 工单系统 二次开发工单管理并开源代码

    介绍 JumpServer 是广受欢迎的开源堡垒机,是符合 4A 规范的专业运维安全审计系统.JumpServer 帮助企业以更安全的方式管控和登录所有类型的资产,实现事前授权.事中监察.事后审计,满 ...

  9. 使用docker部署自己的网页版chatgpt

    如果你有了一个Chat GPT账号想分享给多个人使用,最好还不用禾斗学上网别人就能访问,那么chatgpt-web这个项目可能刚好满足你的需求. 少点命令行,多点可视化,这里采用更直观的方式来搭建ch ...

  10. android emulator 设置代理

    android emulator 设置代理 由于开发的 app 需要访问 google 服务,那么跑虚拟机的时候就需要设置网络代理,试了几种方法都没成功,记录一下 因为已知我开发电脑的代理地址和端口, ...