在 Shell 脚本中,可以通过添加 ANSI 转义序列来为日志输出添加颜色。以下是一个完整的 Shell 脚本示例,包含日志颜色定义、日志函数封装以及使用示例:
完整脚本:colored_logs.sh
#!/bin/bash # 定义颜色变量 RED=' 33[0;31m' GREEN=' 33[0;32m' YELLOW=' 33[0;33m' BLUE=' 33[0;34m' NC=' 33[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 脚本中的日志输出添加颜色,使其更易于阅读和区分。