侧边栏壁纸
博主头像
Ivan Zhang

所谓更牛,就是换个罪受

  • 累计撰写 48 篇文章
  • 累计创建 54 个标签
  • 累计收到 6 条评论

目 录CONTENT

文章目录

使用echo输出带颜色的字体(代码片段)

Ivan Zhang
2021-12-20 / 0 评论 / 0 点赞 / 688 阅读 / 2,966 字
温馨提示:
本文最后更新于 ,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。
有什么问题或观点欢迎评论留言,或者 交流。
如果觉得文章对您有所帮助,可以给博主打赏鼓励一下。

概述

在 Linux 命令行终端或 Bash Shell 脚本中适当使用颜色,能够让第一时间感觉到您的命令或脚本执行过程中差异。本文主要介绍使用 echo 输出带颜色的字体。

echo 带参数输出字符串

echo 命令带 -e 参数时,可以使用反斜杠 \ 输出特殊的字符。

linux 终端下输出带颜色的文字只需在文字前面添加如下格式

\033[显示方式;前景色;背景色m

TIPS:
其中 \033 (ESC 键的八进制)引导非常规字符序列。m 意味着设置属性然后结束非常规字符序列。
\033[ 即告诉终端后面是设置颜色的参数,显示方式,前景色,背景色均是数字

参数含义

显示方式意义
0终端默认设置
1高亮显示
4使用下划线
5闪烁
7反白显示
8不可见
前景色背景色颜色
3040黑色
3141红色
3242绿色
3343黄色
3444蓝色
3545紫红色
3646青蓝色
3747白色

示例(日志颜色控制)

当我们编写 Shell 脚本时,需要将日志信息保存起来,我们也可以使用 echo 命令输出带颜色的字体,方便查看日志信息。

如,我们将以下代码加入到 ~/.bash_log 文件中,并重新加载,使其生效。

#################################################
# Get now date string.
# 当前日期字符串
#################################################
function now_date() {
    format=$1
    if [[ "${format}" ]]; then
        now=$(date +"${format}")
    else
        now=$(date +"%Y%m%d_%H%M%S")
    fi

    echo "${now}"
}

#################################################
# Basic log function.
# 基本日志,输出时间戳
# ex: [2021/08/15 19:16:10]
#################################################
function echo_log() {
    now=$(date +"[%Y/%m/%d %H:%M:%S]")
    echo -e "\033[1;$1m${now}$2\033[0m"
}

#################################################
# Debug log message.
# 调试日志,黑色
#################################################
function msg_debug() {
    echo_log 30 "[Debug] ====> $*"
}

#################################################
# Error log message.
# 异常日志,红色
#################################################
function msg_error() {
    echo_log 31 "[Error] ====> $*"
}

#################################################
# Success log message.
# 成功日志,绿色
#################################################
function msg_success() {
    echo_log 32 "[Success] ====> $*"
}

#################################################
# Warning log message.
# 警告日志,黄色
#################################################
function msg_warn() {
    echo_log 33 "[Warning] ====> $*"
}

#################################################
# Information log message.
# 一般消息日志,蓝色
#################################################
function msg_info() {
    echo_log 34 "[Info] ====> $*"
}

然后,在命令行就可以打印不同样式的消息了。

[meizhaohui@hellogitlab ~]$ msg_debug 'debug message'
[2021/08/21 12:35:45][Debug] ====> debug message
[meizhaohui@hellogitlab ~]$ msg_info "info message"
[2021/08/21 12:35:47][Info] ====> info message
[meizhaohui@hellogitlab ~]$ msg_warn 'warn message'
[2021/08/21 12:35:58][Warning] ====> warn message
[meizhaohui@hellogitlab ~]$ msg_error 'error message'
[2021/08/21 12:36:16][Error] ====> error message
[meizhaohui@hellogitlab ~]$ msg_success 'success message'
[2021/08/21 12:36:25][Success] ====> success message

实际效果如下:
image.png

可以看到,这种效果非常漂亮。后面我们可以把相应的消息写入到日志文件中,后期查看日志文件内容时,也可以看到有颜色的日志信息。

请看以下示例:

[meizhaohui@hellogitlab ~]$ msg_info "info message" >> log.txt
[meizhaohui@hellogitlab ~]$ msg_warn 'warn message' >> log.txt
[meizhaohui@hellogitlab ~]$ msg_success 'success message' >> log.txt
[meizhaohui@hellogitlab ~]$ cat log.txt
[2021/08/21 12:40:14][Info] ====> info message
[2021/08/21 12:40:27][Warning] ====> warn message
[2021/08/21 12:40:37][Success] ====> success message
[meizhaohui@hellogitlab ~]$

效果如下:
image.png

参考链接

0

评论区