ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

shell中设置文字输出的颜色及字体格式

2019-03-04 16:55:10  阅读:253  来源: 互联网

标签:shell 颜色 COLOR echo 字体 033 格式 光标 0m


shell中设置文字输出的颜色及字体格式

1、Linux中设置文本颜色及背景色

Shell 使用 ANSI 转义码 (ANSI escape codes) 进行颜色输出。转义序列颜色输出表如下

颜色

前景色

背景色

黑色 (Black)

30

40

红色 (Red)

31

41

绿色 (Green)

32

42

××× (Yellow)

33

43

蓝色 (Blue)

34

44

紫红色 (Magenta)

35

45

青色 (Cyan)

36

46

白色 (White)

37

47

 

echo -e "\033[颜色值m 文本"

这句代码中\033[ 作为转义序列的开始,你也可以使用 "\e[" 颜色值处设定前景色值。m 终止转义序列,后面紧跟着就是生效的文本。echo 需要 -e 来开启转义序列。可以用 printf 代替 echo。

printf  "\e[颜色值m 文本\n"

2、shell中设置字体颜色及背景实例

例1:打印蓝色文本(两种方法)

echo -e "\033[34m Hello World"

printf "\e[34m Hello World\n"

但是这样执行之后,会使得其后面的文本输出都是蓝色,连命令提示符都是蓝色。要使其返回颜色使用 \033[0m。

 

使用不同的转义序列组合来达到不同的效果,如下面加上背景色的显示:

 

echo -e "\033[前景色值;背景色值m 文本\033[0m"

 

前景色值和背景色值使用分号间隔,不分先后,因为两种值的颜色范围不一样,比如 黑色 30 40 。另外分开写同样生效,如 \033[44m\033[32m

 

3、Linux中设置字体属性(加粗、闪烁、下划线等)

转义序列还可以设置文本在显示屏上显示的方式,如是否加粗等,如下表:

ANSI 码

含义

0

常规文本

1

粗体文本

4

含下划线文本

5

闪烁文本

7

反色(补色)文本

 

加粗属性合并后,有些变化。如下表:

关闭加粗

颜色

开启加粗

颜色

0;30

黑 (Black)

1;30

深灰 (Dark Gray)

0;31

红 (Red)

1;31

深红 (Dark Red)

0;32

绿 (Green)

1;32

深绿 (Dark Green)

0;33

黄 (Yellow)

1;33

亮黄 (Yellow)

0;34

蓝 (Blue)

1;34

深蓝 (Dark Blue)

0;35

紫红 (Magenta)

1;35

暗紫红 (Dark Magenta)

0;36

青 (Cyan)

1;36

深青 (Dark Cyan)

0;37

浅   灰 (White)

1;37

白 (White)

特效可以叠加,需要使用“;”隔开,例如:闪烁+下划线+白底色+黑字为   \033[5;4;47;30m闪烁+下划线+白底色+黑字为\033[0m

4、shell脚本实现各种字体颜色及背景设置

#!/bin/bash 

#下面是字体输出颜色及终端格式控制 

#字体色范围:30-37 

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" 

#字背景颜色范围:40-47 

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" 

 

#控制选项说明 

#\033[0m 关闭所有属性 

#\033[1m 设置高亮度 

#\033[4m 下划线 

echo -e "\033[4;31m 下划线红字 \033[0m" 

#闪烁 

echo -e "\033[5;34m 红字在闪烁 \033[0m" 

#反影 

echo -e "\033[8m 消隐 \033[0m " 

 

#\033[30m-\033[37m 设置前景色 

#\033[40m-\033[47m 设置背景色 

#\033[nA光标上移n行 

#\033[nB光标下移n行 

echo -e "\033[4A 光标上移4行 \033[0m" 

#\033[nC光标右移n行 

#\033[nD光标左移n行 

#\033[y;xH设置光标位置 

#\033[2J清屏 

#\033[K清除从光标到行尾的内容 

echo -e "\033[K 清除光标到行尾的内容 \033[0m" 

#\033[s 保存光标位置 

#\033[u 恢复光标位置 

#\033[?25| 隐藏光标 

#\033[?25h 显示光标 

echo -e "\033[?25l 隐藏光标 \033[0m" 

echo -e "\033[?25h 显示光标 \033[0m"

5、使用echo让字符串显示不同颜色

下面的命令可写入脚本执行,根据实际情况替换需要改变颜色的文本。

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"

6、通过定义变量的方式给字体加颜色

#!/bin/bash

#通过变量给字体加颜色

RED_COLOR='\E[1;31m'

GREEN_COLOR='\E[1;32m'

YELLOW_COLOR='\E[1;33m'

BLUE_COLOR='\E[1;34m'

PINK_COLOR='\E[1;35m'

RES='\E[0m'

echo -e "${RED_COLOR}=====红色可替换部分=====${RES}"

echo -e "${GREEN_COLOR}=====绿色可替换部分=====${RES}"

echo -e "${YELLOW_COLOR}=====×××可替换部分=====${RES}"

echo -e "${BLUE_COLOR}=====蓝色可替换部分=====${RES}"

echo -e "${PINK}=====粉色可替换部分=====${RES}"

 

7、开发一个给输出内容加颜色的函数(也可以加背景颜色)

在脚本中传2个参数,给指定内容(第一个参数),加指定颜色(第二个参数)

#!/bin/bash

#通过变量给字体加颜色

#这里定义一个COLOR_1()函数,后面如果想改变字体颜色直接调用即可

COLOR_1(){

RED_COLOR='\E[1;31m'

GREEN_COLOR='\E[1;32m'

YELLOW_COLOR='\E[1;33m'

BLUE_COLOR='\E[1;34m'

PINK_COLOR='\E[1;35m'

RES='\E[0m'

#这里判断传入的参数是否不等于2个,如果不等于2个就提示并退出

if [ $# -ne 2 ];then

    echo "Usage $0 content {red|yellow|blue|green|pink}"

    exit

fi

 

case "$2" in

   red|RED)

        echo -e "${RED_COLOR}$1${RES}"

        ;;

   yellow|YELLOW)

        echo -e "${YELLOW_COLOR}$1${RES}"

        ;;

   green|GREEN)

        echo -e "${GREEN_COLOR}$1${RES}"

        ;;

   blue|BLUE)

        echo -e "${BLUE_COLOR}$1${RES}"

        ;;

   pink|PINK)

        echo -e "${PINK_COLOR}$1${RES}"

        ;;

         *)

        echo -e "请输入指定的颜色代码:{red|yellow|blue|green|pink}"

esac

}

COLOR_1 "程序安装报错!" red

COLOR_1 "程序安装成功!" green

COLOR_1 "输出相关注释信息" blue

 


标签:shell,颜色,COLOR,echo,字体,033,格式,光标,0m
来源: https://blog.51cto.com/longlei/2357898

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有