Shell编程—日志模块

  • Shell中的日志模块
    • 简述:
    • 日志分类:
      • INFO 类型
      • WARNING 类型
      • ERROR 类型
      • DEBUG 类型
    • 封装成log方法:
    • 常见文字颜色的表述方式:

Shell中的日志模块

简述:

相信大家发现在编写Shell脚本时觉得最难的地方就是Shell脚本的调试,往往是费时费力的撸了几百行Shell脚本,一执行,发现没报任何错误(开心),但是发现预期的要求却没实现(哭死),最后只能一行一行的调试,这篇文章主要是想分享几个在实际项目中对调试比较有帮助的日志打印方式,内容比较简单。

日志分类:

在具体的Shell工程中对外输出大体分为几种:

标志 常用颜色 志分类 提示作用
[INFO] 绿色 正常输出 用于查看程序执行进度
[DEBUG] 白色 调试输出 用于输出一些程序运行过程中的中间变量,用于调试与开发
[WARNING] 黄色 告警信息 用于提示一些无关紧要但是又与预期不符的程序结果
[ERROR] 红色 错误信息 一些会影响shell执行的严重错误

所以在shell编写中提前定义好日志与日志类型还是很关键的,接下来我就分别写下如何定义以及封装这些日志模块

INFO 类型

INFO类型的日志是日志分类中最简单也是最基础的一类日志,只需要将标示输出并且输出要打印的文字既可,代码如下:

#!/bin/bash
function INFO() {msg=$1 #第一个参数 —— 要打印的文字echo -e "\033[32m[INFO]\033[0m" ${msg}
}
#调用INFO方法
INFO "This is INFO"

WARNING 类型

WARNING与INFO类似只要起提示作用,只是颜色变得比较鲜艳

#!/bin/bash
function WARNING() {msg=$1 #第一个参数 —— 要打印的文字echo -e "\033[34m[WARNING]\033[0m" ${msg}
}
#调用INFO方法
WARNING "This is WARNING"

ERROR 类型

ERROR类型比较特殊,一般放在错误判断逻辑里,执行后打印错误信息并退出程序

function ERROR() {msg=$1echo -e "\033[31m[ERROR]\033[0m" ${msg}exit -1 #这里退出代码不能为0,因为0表示正常退出,主要用于程序被调用的时候状态判定
}
ERROR "This is ERROR"

DEBUG 类型

DEBUG类型与INFO类型的区别就在于要将一些变量或者一些执行信息进行包裹,而且要根据配置信息进行选择是否要打开DEBUG

#!/bin/bash
DEBUG_FLAG=1 #1 | 0 全局变量用于判定是否打开debug模式
function DEBUG() {msg=$1echo [DEBUG] ${msg}if [[ ${DEBUG_FLAG} = 1 ]];thenset -x #开启日志输出fi
}DEBUG "This is DEBUG"
process=hello
echo "This is Progress:"${process}

封装成log方法:

#!/bin/bashfunction log() {if [[ $# -eq 1 ]];thenmsg=$1echo -e "\033[32m[INFO]\033[0m" ${msg}elif [[ $# -eq 2 ]];thenparam=$1msg=$2if [[ ${param} = "-w" ]];thenecho -e "\033[34m[WARNING]\033[0m" ${msg}elif [[ ${param} = "-e" ]];thenecho -e "\033[31m[ERROR]\033[0m" ${msg}exit -1elif [[ ${param} = "-d" ]];thenecho [DEBUG] ${msg}if [[ ${DEBUG_FLAG} = 1 ]];thenset -x #开启日志输出fififi}function main() {DEBUG_FLAG=1log "this is INFO"log -w "this is WARNING"log -d "this is DEBUG"log -e "this is ERROR"
}main

常见文字颜色的表述方式:

#!/bin/bashfunction main() {echo -e "\033[30m 黑色字 \033[0m" echo -e "\033[31m 红色字 \033[0m"echo -e "\033[32m 绿色字 \033[0m" echo -e "\033[33m 黄色字 \033[0m" echo -e "\033[34m 蓝色字 \033[0m" echo -e "\033[35m 紫色字 \033[0m" echo -e "\033[36m 天蓝字 \033[0m" echo -e "\033[37m 白色字 \033[0m"
}main

Shell编程—日志模块相关推荐

  1. Linux Shell 编程学习总结

    Shell 教程 Shell简介:什么是Shell,Shell命令的两种执行方式 Shell本身是一个用C语言编写的程序,它是用户使用Unix/Linux的桥梁,用户的大部分工作都是通过Shell完成 ...

  2. 常见Shell编程脚本

    常见Shell编程脚本 一.Linux运维监控相关 1.创建 Linux 系统账户及密码 #!/bin/bash # 通过位置变量创建 Linux 系统账户及密码 #$1 是执行脚本的第一个参数,$2 ...

  3. 转 shell编程100例

    shell编程100例 联系我 1.编写hello world脚本 #!/bin/bash # 编写hello world脚本 echo "Hello World!" 2.通过位置 ...

  4. Linux系统命令与Shell编程

    第1章 linux简介 1.linux系统主要特点 免费开源.Linux是一款完全免费的操作系统,任何人都可以从网络上下载到它的源代码,并可以根据自己的需求进行定制化的开发,而且没有版权限制. 模块化 ...

  5. 高级shell编程笔记(第三十三章 杂项)

    第三十三章 杂项 33.1 交互式和非交互式的shell和脚本 交互式的shell在tty终端从用户的输入中读取命令.另一方面,shell能在启动时读取启动文件,显示一个提示符并默认激活作业控制.用户 ...

  6. Shell编程-运维

    什么是运维 术语名词 IDC--(Internet Data Center)互联网数据中心,主要服务包括整机租用.服务器托管.机柜租用.机房租用.专线接入和网络管理服务等.广义上的IDC业务,实际上就 ...

  7. 第五阶段:shell编程企业实战,完整版

    第五阶段:shell编程企业实战 第一章shell变量核心基础与进阶 1.1节.什么是shell 什么是shell Shell是一个命令解释器,它的作用是解释执行用户输入的命令及程序等,用户输入一条命 ...

  8. (二)shell编程之变量定义与使用

    shell编程之变量定义与使用 SHELL编程模块课程目标 ① Shell的基本语法结构 如:变量定义.条件判断.循环语句(for.until.while).分支语句.函数和数组等: ② 基本正则表达 ...

  9. 如让自己想学不好shell编程都困难?

    众所周知,shell是linux运维必备的技术,必须要掌握,但是shell语法复杂,灵活,网友掌握了语法也不知道如何应用到实际运维中,老男孩培训shell编程给所有linux运维人员带来了学好shel ...

最新文章

  1. Android 应用程序集成Google 登录及二次封装
  2. java求导数_OO_JAVA_表达式求导
  3. java纯粹面向对象_Java的面向对象特征
  4. 从 6 篇顶会论文看「知识图谱」领域最新研究进展 | 解读 代码
  5. 轻量级KVO ——》 KVO 管理 observeValueForKeyPath
  6. 【STM32】GPIO相关函数和类型
  7. usb PHY linux驱动
  8. 云栖专辑 | 阿里开发者们的第6个感悟:享受折磨
  9. Java LocalDate类| 带示例的getDayOfYear()方法
  10. w ndows7与XP哪个好,windows7和xp哪个好 windows7好用吗
  11. android+ndk+r9+x64下载,Win7 64位中文旗舰版上Cocos2d-x 3.0的Android开发调试环境架设
  12. 100以内偶数的个数_【数学杂谈】如何记住1000以内的所有质数?
  13. VGG使用重复元素的网络
  14. html代码表白_作为一个程序员,表白都要玩出花样
  15. Vue-购物车简单案例
  16. 计算机与信息技术研究生,计算机与信息技术学院研究生必读经典文献.doc
  17. java 企业级安全_《企业级Java安全性—构建安全的J2EE应用》 尹亚 【正版电子纸书阅读_PDF下载】- 书问...
  18. 网线转RS232如何接线
  19. 计算机应用公式基础教学教案,《终稿[定稿]大学计算机应用基础全册教案版》...
  20. iOS系统语音播报文字

热门文章

  1. NPU运行过程中,读带宽高还是写带宽高?
  2. dnf服务器炸团门票怎么找回,DNF最新BUG,玩家打团买票后材料消失,无法引炸直接退队!...
  3. Windows在局域网内无法访问Linux服务器上的web项目问题
  4. 自动驾驶车辆控制(坐标转换与横向积分误差)
  5. 字节跳动精准测试实践,SmartEye背后的设计逻辑
  6. 电动车充电软件测试,电动车充电用哪个app好?6款充电app评测
  7. 噬菌体疗法治疗细菌多重耐药添一篇好文
  8. 素数统计 平移区间筛质数(1e9)
  9. 生育 生殖 長壽의 三情은 萬物의 本能 (韓長庚 易學原理總論)
  10. 蓝桥杯_既约分数_java