在shell脚本中为日志添加颜色
在 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
脚本说明
颜色定义:
- 使用 ANSI 转义序列定义了几种常见颜色(红色、绿色、黄色、蓝色)。
NC用于重置颜色,避免后续文本被着色。
日志函数:
log_error:输出红色错误日志。log_warn:输出黄色警告日志。log_info:输出绿色信息日志。log_debug:输出蓝色调试日志。
示例函数:
example_function模拟了一个操作,根据传入的参数决定是否模拟错误场景。- 在函数中使用了不同的日志函数来记录不同级别的日志。
主函数:
main函数是脚本的入口,调用示例函数并输出日志。
执行脚本:
- 脚本最后调用
main函数来启动逻辑。
- 脚本最后调用
运行脚本
- 将脚本保存为
colored_logs.sh。 - 赋予脚本执行权限:
chmod +x colored_logs.sh
- 运行脚本:
./colored_logs.sh
输出示例
运行脚本后,您将看到类似以下的彩色输出:

注意事项
终端支持:
- 确保您的终端支持 ANSI 颜色代码。大多数现代终端(如 Linux 终端、macOS Terminal、Windows Terminal)都支持。
日志级别:
- 您可以根据需要调整日志级别,例如在生产环境中禁用
DEBUG日志。
- 您可以根据需要调整日志级别,例如在生产环境中禁用
扩展功能:
- 可以将日志输出重定向到文件,或者添加时间戳等功能。
通过这种方式,您可以为 Shell 脚本中的日志输出添加颜色,使其更易于阅读和区分。
在shell脚本中为日志添加颜色的更多相关文章
- shell脚本中给字符串添加颜色
shell脚本中echo显示内容带颜色显示,echo显示带颜色,需要使用参数-e 格式如下: echo -e "\033[字背景颜色:文字颜色m字符串\033[0m" 例如: ec ...
- 让shell脚本中的echo输出带颜色
转载自:http://www.linuxidc.com/Linux/2014-12/110463.htm 让echo输出带颜色的方法有两种 1.在shell脚本中定义颜色变量,使用echo -e调用变 ...
- shell脚本中自定义日志记录到文件
自定义日志函数和前期变量 # adirname - return absolute dirname of given file adirname() { odir=`pwd`; cd `dirname ...
- 【转】shell脚本中echo显示内容带颜色
shell脚本中echo显示内容带颜色显示,echo显示带颜色,需要使用参数-e.格式如下: echo -e "\033[41;36m something here \033[0m&qu ...
- shell脚本中echo显示内容带颜色
转自:http://www.cnblogs.com/lr-ting/archive/2013/02/28/2936792.html shell脚本中echo显示内容带颜色显示,echo显示带颜色,需要 ...
- Linux下添加shell脚本使得nginx日志每天定时切割压缩
Linux下添加shell脚本使得nginx日志每天定时切割压缩一 简介 对于nginx的日志文件,特别是access日志,如果我们不做任何处理的话,最后这个文件将会变得非常庞大 这时,无论是出现异常 ...
- shell脚本中使用echo显示带颜色的内容
shell脚本中使用echo显示带颜色的内容,需要使用参数-e 格式如下: echo -e "\033[字背景颜色;文字颜色m字符串\033[0m" 例如: echo -e &qu ...
- shell脚本中添加用户并设置密码
有时候在初始化shell脚本中希望能顺便创建用户并指定密码,使用useradd命令可以达到该效果: useradd -m -p encryptedPassword username 参数说明: -m ...
- 【转】shell脚本中echo显示内容带颜色的实现方法
shell脚本中echo显示内容带颜色的实现方法 shell脚本里使用echo输出颜色
- shell脚本介绍、shell脚本结构和执行、date命令用法、shell脚本中的变量
7月11日任务 20.1 shell脚本介绍20.2 shell脚本结构和执行20.3 date命令用法20.4 shell脚本中的变量 20.1 shell脚本介绍 1.shell脚本语言是linu ...
随机推荐
- 使用IntelliJ IDEA中的Live Templates自定义代码模板
平时用IntelliJ IDEA写代码的时候,你有没有用过这些快捷方式: 输入main,会弹出自动补全完整的main结构: 输入sout,会弹出自动补全完整的System.out语句: 那么问题来了: ...
- 基于surging 的木舟平台如何通过Tcp或者UDP网络组件接入设备
一.概述 上篇文章介绍了木舟通过HTTP网络组件接入设备,那么此篇文章将介绍如何利用Tcp或者UDP网络组件接入设备. 木舟 (Kayak) 是什么? 木舟(Kayak)是基于.NET6.0软件环境下 ...
- Cargo deny安装指路
本博客所有文章除特别声明外,均采用CC BY-NC-SA 4.0许可协议.转载请注明来自 唯你 简介 cargo deny 是一个 Rust 工具,用于检查项目依赖项的许可证.安全性和其他合规性问题. ...
- Webshell流量分析之哥斯拉Godzilla&冰蝎Behinder
目录 哥斯拉 冰蝎 哥斯拉和冰蝎相较于菜刀蚁剑,它们的通信流量是加密的,有比较好的抗检测能力. 菜刀和蚁剑流量分析:Webshell流量分析之菜刀Chopper&蚁剑AntSword 哥斯拉 ...
- 设计模式(17)-Chain of Responsibility Pattern
行为模式(Behavioral Pattern)是对在不同的对象之间划分责任和算法的抽象化.行为模式不仅仅是关于类和对象的,而且是关于它们之间的相互作用的. 行为模式分为类的行为模式和对象的行为模式两 ...
- Eclipse JDT--AST入门
最近做program analysis,需要解析Java的源代码,于是就去看了看Abstract Syntax Tree(AST,中文为抽象语法树).有点无奈的是,网上关于这方面的资料比我想象中的少, ...
- 最全ECharts 实战大全(速记版+资源)
hello,大家好,我是程序员海军,公众号已经快一年多没更新了,没更新的这段时间,我去哪了呢.这两年经历了很多事情,主要情感上占据大部分时间, 从失恋 - 谈对象 - 再失恋. 言归正传,近期我负责的 ...
- 简单端口映射、转发、重定向工具之Rinetd
◆一.概述 Rinetd是为在一个Unix和Linux操作系统中为重定向传输控制协议(TCP)连接的一个工具.将 TCP 连接从一个 IP 地址和端口重定向到另一个.它处理文件中/etc/rinetd ...
- Linux系统之Ubuntu
常用命令: #查看安装包 dpkg -l 1)切换镜像源 本身的镜像都是国外的,下载依赖包太慢, 需要替换成国内镜像地址 国内镜像源推荐阿里 OPSX 源: https://opsx.alibaba. ...
- Windows下的终端工具-Terminal
文档:https://docs.microsoft.com/zh-cn/windows/terminal/ Windows 终端是一个面向命令行工具和 shell(如命令提示符.PowerShell ...