四时宝库

程序员的知识宝库

给你的linux-shell脚本输出上色(shell脚本输出hello world)

shell介绍

shell

linux的shell是一个命令语言,同时它又是一种程序设计语言。它交互式解释和执行用户输入的命令或者自动地解释和执行预先设定好的一连串的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支。

shell是系统管理员的强大帮手

shell脚本可以说是每个做系统运维必备的技能,它可以像写编程语言一样,实现你的复杂工作需要,大大提高你的工作效率。相信每个系统管理员都多多少少写过shell脚本,同时,shell脚本会输出你想要的结果或者相应的错误提示。但默认的输出字体颜色是一成不变的,所以有时候想从中找到你想要的重要信息,还是稍显麻烦,那么,我们可不可以自定义输出关键字段的颜色呢?像有些服务一样?当然是可以的。

强大的系统管理语言

shell字体颜色

一个shell颜色示例(白底蓝字):\033[47;34m

shell字体颜色是用ANSI转义序列来表示的,通用的控制文本颜色的转义序列格式如下:

  • CSIn1[;n2[;…]]m

其中CSI全称为“控制序列引导器”(Control Sequence Introducer/Initiator),也就是上述示例中的"\033["(其中\033是你键盘左上角Esc键对应的ascii码(八进制),\033、\x1b和\e效果一样);n1、n2等表示SGR参数(下面会列出一些常用的SGR参数),用于控制颜色、粗体、斜体、闪烁等文本输出格式;m表示转义序列结束。除了shell命令可输出颜色,其它语言中也可以使用上述ANSI转义序列输出颜色(前提是你使用的终端仿真器如putty/secureCRT/xshell能够解析ANSI转义序列)。

常用的SRG参数如下(前者为编码,后者为对应的颜色或动作):

  • 0   重新设置属性到缺省设置

  • 1   设置粗体

  • 2   设置一半亮度(模拟彩色显示器的颜色)

  • 4   设置下划线(模拟彩色显示器的颜色)

  • 5   设置闪烁

  • 7   设置反向图象

  • 22   设置一般密度

  • 24   关闭下划线

  • 25   关闭闪烁

  • 27   关闭反向图象

  • 30   设置黑色前景

  • 31   设置红色前景

  • 32   设置绿色前景

  • 33   设置黄色前景

  • 34   设置蓝色前景

  • 35   设置紫色前景

  • 36   设置青色前景

  • 37   设置白色(灰色)前景

  • 38   在缺省的前景颜色上设置下划线

  • 39   在缺省的前景颜色上关闭下划线

  • 40   设置黑色背景

  • 41   设置红色背景

  • 42   设置绿色背景

  • 43   设置黄色背景

  • 44   设置蓝色背景

  • 45   设置紫色背景

  • 46   设置青色背景

  • 47   设置白色(灰色)背景

  • 49   设置缺省黑色背景

还有其他与颜色不相关的编码这里就不一一列举。

用例

vim test.sh

#!/bin/bash

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"

echo -e "\033[40;37m 黑底白字 \033[0m"

echo -e "\033[41;37m 红底白字 \033[0m"

echo -e "\033[42;37m 绿底白字 \033[0m"

echo -e "\033[43;37m 黄底白字 \033[0m"

echo -e "\033[44;37m 蓝底白字 \033[0m"

echo -e "\033[45;37m 紫底白字 \033[0m"

echo -e "\033[46;37m 天蓝底白字 \033[0m"

echo -e "\033[47;30m 白底黑字 \033[0m"

chmod +x test.sh

./test.sh

输出结果

字符结束需要设置成默认字体色”\033[0m“,也可以将颜色设置为变量,方便引用 ,增加脚本程序可读性。如:

Default_color=“\033[0m” # 默认

Color_g=“\x1b[0;32m” # 绿色

然后引用:

echo -e "$Color_g这是告警日志$Default_color"

这些颜色的输出大大地增强了文本的可读性,瞬间高大上。

喜欢请点赞

@请关注木纳哥的头条,后续内容更精彩@

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接