首页 > 系统相关 >shell脚本输出带文本颜色背景颜色自定义样式格式内容

shell脚本输出带文本颜色背景颜色自定义样式格式内容

时间:2022-11-16 11:58:35浏览次数:80  
标签:shell 颜色 自定义 33 echo 033 光标 0m

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}"

输出效果如下:

参考:Shell echo命令

标签:shell,颜色,自定义,33,echo,033,光标,0m
From: https://www.cnblogs.com/xiongzaiqiren/p/16895162.html

相关文章

  • shell脚本---$()和${}区别
    转载:https://blog.csdn.net/itworld123/article/details/125447252一、$()$() 小括号里面是Linux命令,作用就是执行里面的命令后返回执行的结果;和``(反引号)作用一样。......
  • 富文本组件 非Element Plus表单组件 自定义组件 触发表单校验
      项目中有很多自己封装的组件,如富文本组件,文件上传,图片上传等。而这些组件在表单中常常会在新增和编辑的场景应用。而且ElementPlus官网展示demo都是基于ElementPlu......
  • c语言自定义输出小数点位数_c语言double类型默认输出小数几位
    C语言中常用的小数有两种类型,分别是float或double;float称为单精度浮点型,double称为双精度浮点型。不像整数,小数没有那么多幺蛾子,小数的长度是固定的,float始终占用4个......
  • 第四十八章 开发自定义标签 - 在action中使用csr标签
    第四十八章开发自定义标签-在action中使用csr标签在action中使用<csr>标签在规则的操作定义中,可以使用一些附加标记。本节描述:<csr:default>Tag<csr:children>......
  • 批量创建xshell会话
    importreimportostmp_file=r"C:\Users\yc\Documents\NetSarangComputer\7\Xshell\Sessions\192.168.2.253.xsh"withopen(tmp_file,"r+",encoding="utf-16......
  • webpack简介及自定义插件
    webpack 是一个用于现代JavaScript应用程序的 静态模块打包工具。当webpack处理应用程序时,它会在内部从一个或多个入口点构建一个 依赖图(dependencygraph),然......
  • vue自定义事件的基本使用
    因为新项目要写114个字段,所以今天试着封装了一个dialog表单组件在优化关闭和提交按钮的时候,可以在父组件写事件,这时候自定义事件就能登场了我先是这么操作了一番父组件:......
  • Flume 自定义拦截器
    ApacheFlume是一个分布式的、可靠和易用的日志收集系统,用于将大量日志数据从许多不同的源进行收集、聚合,最终移动到一个集中的数据中心进行存储。Flume的使用不仅仅限于......
  • uniapp 实现小程序中自定义tabBar
    uniapp实现小程序中自定义tabBar的方法第一种方式:page.json中配置"tabBar":{"color":"#7A7E83","selectedColor":"#007AFF","borderStyle":"black",......
  • leaflet 加载高德地图自定义样式
    最近项目需求,需要使用leaflet封装成一个vue组件,涉及功能主要有高德自定义样式地图封装为leaflet底图图层、自定义坐标系、topjson省市区街道下钻、线面区域热力层、飞线、......