在 Shell 脚本中,可以通过添加 ANSI 转义序列来为日志输出添加颜色。以下是一个完整的 Shell 脚本示例,包含日志颜色定义、日志函数封装以及使用示例:

完整脚本:colored_logs.sh

#!/bin/bash

# 定义颜色变量
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[0;33m'
BLUE='\033[0;34m'
NC='\033[0m' # 无颜色(重置颜色) # 日志函数封装
log_error() {
echo -e "${RED}[ERROR] $1${NC}"
} log_warn() {
echo -e "${YELLOW}[WARN] $1${NC}"
} log_info() {
echo -e "${GREEN}[INFO] $1${NC}"
} log_debug() {
echo -e "${BLUE}[DEBUG] $1${NC}"
} # 示例函数,模拟一些操作
example_function() {
log_info "开始执行示例函数..."
log_debug "这是一个调试信息,通常用于详细日志。" # 模拟一个操作
if [[ $1 == "error" ]]; then
log_error "操作失败,模拟错误场景。"
else
log_info "操作成功完成。"
fi log_warn "这是一个警告信息,表示需要注意的情况。"
} # 主脚本逻辑
main() {
log_info "脚本启动..." # 调用示例函数
example_function "success"
example_function "error" log_info "脚本结束。"
} # 执行主函数
main

脚本说明

  1. 颜色定义

    • 使用 ANSI 转义序列定义了几种常见颜色(红色、绿色、黄色、蓝色)。
    • NC 用于重置颜色,避免后续文本被着色。
  2. 日志函数

    • log_error:输出红色错误日志。
    • log_warn:输出黄色警告日志。
    • log_info:输出绿色信息日志。
    • log_debug:输出蓝色调试日志。
  3. 示例函数

    • example_function 模拟了一个操作,根据传入的参数决定是否模拟错误场景。
    • 在函数中使用了不同的日志函数来记录不同级别的日志。
  4. 主函数

    • main 函数是脚本的入口,调用示例函数并输出日志。
  5. 执行脚本

    • 脚本最后调用 main 函数来启动逻辑。

运行脚本

  1. 将脚本保存为 colored_logs.sh
  2. 赋予脚本执行权限:
    chmod +x colored_logs.sh
  3. 运行脚本:
    ./colored_logs.sh

输出示例

运行脚本后,您将看到类似以下的彩色输出:

注意事项

  1. 终端支持

    • 确保您的终端支持 ANSI 颜色代码。大多数现代终端(如 Linux 终端、macOS Terminal、Windows Terminal)都支持。
  2. 日志级别

    • 您可以根据需要调整日志级别,例如在生产环境中禁用 DEBUG 日志。
  3. 扩展功能

    • 可以将日志输出重定向到文件,或者添加时间戳等功能。

通过这种方式,您可以为 Shell 脚本中的日志输出添加颜色,使其更易于阅读和区分。

在shell脚本中为日志添加颜色的更多相关文章

  1. shell脚本中给字符串添加颜色

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

  2. 让shell脚本中的echo输出带颜色

    转载自:http://www.linuxidc.com/Linux/2014-12/110463.htm 让echo输出带颜色的方法有两种 1.在shell脚本中定义颜色变量,使用echo -e调用变 ...

  3. shell脚本中自定义日志记录到文件

    自定义日志函数和前期变量 # adirname - return absolute dirname of given file adirname() { odir=`pwd`; cd `dirname ...

  4. 【转】shell脚本中echo显示内容带颜色

    shell脚本中echo显示内容带颜色显示,echo显示带颜色,需要使用参数-e.格式如下:   echo -e "\033[41;36m something here \033[0m&qu ...

  5. shell脚本中echo显示内容带颜色

    转自:http://www.cnblogs.com/lr-ting/archive/2013/02/28/2936792.html shell脚本中echo显示内容带颜色显示,echo显示带颜色,需要 ...

  6. Linux下添加shell脚本使得nginx日志每天定时切割压缩

    Linux下添加shell脚本使得nginx日志每天定时切割压缩一 简介 对于nginx的日志文件,特别是access日志,如果我们不做任何处理的话,最后这个文件将会变得非常庞大 这时,无论是出现异常 ...

  7. shell脚本中使用echo显示带颜色的内容

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

  8. shell脚本中添加用户并设置密码

    有时候在初始化shell脚本中希望能顺便创建用户并指定密码,使用useradd命令可以达到该效果: useradd -m -p encryptedPassword username 参数说明: -m ...

  9. 【转】shell脚本中echo显示内容带颜色的实现方法

    shell脚本中echo显示内容带颜色的实现方法 shell脚本里使用echo输出颜色  

  10. shell脚本介绍、shell脚本结构和执行、date命令用法、shell脚本中的变量

    7月11日任务 20.1 shell脚本介绍20.2 shell脚本结构和执行20.3 date命令用法20.4 shell脚本中的变量 20.1 shell脚本介绍 1.shell脚本语言是linu ...

随机推荐

  1. Java面试题中高级进阶(JVM篇Java内存)

    前言 本来想着给自己放松一下,刷刷博客,突然被几道面试题难倒!说说Java内存结构?说说对象分配规则?描述一下JVM加载class文件的原理机制?似乎有点模糊了,那就大概看一下面试题吧.好记性不如烂键 ...

  2. 【问题解决】java.lang.SecurityException: JCE cannot authenticate the provider BC

    问题复现 历史项目升级JDK(由1.7升级到8),进行加密/解密时出现报错java.lang.SecurityException: JCE cannot authenticate the provid ...

  3. 15-1 OOP概述

    目录 核心思想 继承 动态绑定 核心思想 面向对象程序设计(object-oriented programming)的核心思想是 封装:类的接口和实现分离 继承:定义相似的类型并对相似关系建模 动态绑 ...

  4. IIC通信协议详解 & PCF8591应用(Verilog实现)

    该文章结合PCF8591 8-bit AD/DA 模数/数模转换器来详细介绍IIC通信协议,尽量做到条理清晰,通俗易懂.该文图片均从PCF8591手册中截取,一定程度上引导读者学习阅读data she ...

  5. vue-amap接入高德地图示例

    通过 CDN 的方式我们可以很容易地使用 vue-amap 写出一个 Hello world 页面. 什么是CDN? 定义是这样的:CDN是构建在网络之上的内容分发网络,依靠部署在各地的边缘服务器,通 ...

  6. 敏捷开发:Scrum 中的 Product Backlog 介绍

    Product Backlog 产品待办列表 在计划开发产品功能时,都希望产品功能上线后,用户能够喜欢并经常使用. 因此在开发产品新功能时,就要衡量哪些产品需求是对用户最有价值,这是最应该思考的问题. ...

  7. 用于自然语言处理的循环神经网络RNN

    前一篇:<人工智能模型学习到的知识是怎样的一种存在?> 序言:在人工智能领域,卷积神经网络(CNN)备受瞩目,但神经网络的种类远不止于此.实际上,不同类型的神经网络各有其独特的应用场景.在 ...

  8. 结合反射与 XML 实现 Java 编程的动态性

    反射是 Java 语言被视为动态或准动态语言的一个关键性质,结合反射和 XML 会帮助我们更快.更方便地实现一些动态代码,从而解决编程中可能遇到的不确定问题.本文将结合反射与 XML 对 Java 编 ...

  9. 基于JDBC的数据库连接池高效管理策略

    在基于JDBC的数据库应用开发中,数据库连接的管理是一个难点,因为它是决定该应用性能的一个重要因素.本文在对数据库连接进行透彻分析的基础上,提出并实现了一个高效的连接管理策略,使得开发高性能的数据库应 ...

  10. Golang之工作区workspace

    快速开始 创建工作区 写一个最简单的基础项目实际演练一下 Go workspace. 首先,创建 workspace 工作区. $: mkdir workspace $: cd workspace $ ...