在shell脚本中为日志添加颜色

莱莱  金牌会员 | 2025-1-13 04:50:59 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 993|帖子 993|积分 2979

在 Shell 脚本中,可以通过添加 ANSI 转义序列来为日志输出添加颜色。以下是一个完备的 Shell 脚本示例,包含日志颜色定义、日志函数封装以及使用示例:
完备脚本:colored_logs.sh
  1. #!/bin/bash
  2. # 定义颜色变量
  3. RED='\033[0;31m'
  4. GREEN='\033[0;32m'
  5. YELLOW='\033[0;33m'
  6. BLUE='\033[0;34m'
  7. NC='\033[0m' # 无颜色(重置颜色)
  8. # 日志函数封装
  9. log_error() {
  10.     echo -e "${RED}[ERROR] $1${NC}"
  11. }
  12. log_warn() {
  13.     echo -e "${YELLOW}[WARN] $1${NC}"
  14. }
  15. log_info() {
  16.     echo -e "${GREEN}[INFO] $1${NC}"
  17. }
  18. log_debug() {
  19.     echo -e "${BLUE}[DEBUG] $1${NC}"
  20. }
  21. # 示例函数,模拟一些操作
  22. example_function() {
  23.     log_info "开始执行示例函数..."
  24.     log_debug "这是一个调试信息,通常用于详细日志。"
  25.     # 模拟一个操作
  26.     if [[ $1 == "error" ]]; then
  27.         log_error "操作失败,模拟错误场景。"
  28.     else
  29.         log_info "操作成功完成。"
  30.     fi
  31.     log_warn "这是一个警告信息,表示需要注意的情况。"
  32. }
  33. # 主脚本逻辑
  34. main() {
  35.     log_info "脚本启动..."
  36.     # 调用示例函数
  37.     example_function "success"
  38.     example_function "error"
  39.     log_info "脚本结束。"
  40. }
  41. # 执行主函数
  42. main
复制代码
脚本说明


  • 颜色定义

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

  • 日志函数

    • log_error:输出红色错误日志。
    • log_warn:输出黄色告诫日志。
    • log_info:输出绿色信息日志。
    • log_debug:输出蓝色调试日志。

  • 示例函数

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

  • 主函数

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

  • 实行脚本

    • 脚本末了调用 main 函数来启动逻辑。

运行脚本


  • 将脚本保存为 colored_logs.sh。
  • 赋予脚本实行权限:
    1. chmod +x colored_logs.sh
    复制代码
  • 运行脚本:
    1. ./colored_logs.sh
    复制代码
输出示例

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

注意事项


  • 终端支持

    • 确保您的终端支持 ANSI 颜色代码。大多数当代终端(如 Linux 终端、macOS Terminal、Windows Terminal)都支持。

  • 日志级别

    • 您可以根据必要调解日志级别,比方在生产环境中禁用 DEBUG 日志。

  • 扩展功能

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

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

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

莱莱

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表