常见日志打印方式

编写 shell 脚本时,最简单的日志打印是使用 echo 输出,比如: 下面是打印一个测试程序的日志

[root@VM-0-2-centos ~]# echo "this is a log test..."
this is a log test...

上面的方式使用起来非常简单,编写效率也很高,对于一些功能简单,代码量少的shell脚本,非常适合这种日志打印的方式,简单快捷

通用接口

上面的小节中,每次都用 echo ,没有一个统一的输出格式,如果需要在每条日志开头加上指定内容, 就需要修改脚本中每一处的日志,这就变成了一个体力活了

针对这点,可以定义一个输出函数,所有的的输出统一调用这个函数, 现有测试脚本 t.sh 内容如下

#!/bin/bashfunction log()
{echo "$@"
}

另外新建一个测试脚本 ta.sh

#!/bin/bashsource ./t.shlog "this is a test..."
log "today is `date '+%Y-%m-%d'` "

执行 ./ta.h 命令,结果如下

[root@VM-0-2-centos shell_log]# ./ta.sh
this is a test...
today is 2021-07-27

如果现在想在每一行日志前面加上当前时间的话,直接修改 t.sh 中的 log 函数, t.sh调整后的脚本如下

<

Linux学习总结(76)—— Shell 脚本日志技巧相关推荐

  1. Linux学习入门: shell脚本常用命令汇总

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 前言 Linux学习最初就是要掌握shell脚本的基本命令语句,这个也是我们操作Linux操作系统的关键步骤,但是Linux的shel ...

  2. Linux学习--如何通过Shell脚本实现发送邮件通知功能?

    1.安装和配置sendmail 不需要注册公网域名和MX记录(不需要架设公网邮件服务器),通过Linux系统自带的mail命令即可对公网邮箱发送邮件.不过mail命令是依赖sendmail的,所以我们 ...

  3. Linux编写脚本nsum求和,详解Linux Shell脚本编写技巧,附实例说明

    原标题:详解Linux Shell脚本编写技巧,附实例说明 Linux Shell是一个很难的知识板块.虽然大家都认真学,基本的语法很都掌握,但有需求时,很难直接上手编程,要么写了很久,要么写不好!对 ...

  4. Linux_《Linux命令行与shell脚本编程大全》第十八章学习总结

    时间:2017年12月04日星期一 说明:本文部分内容均摘取自书籍<Linux命令行与shell脚本编程大全>,版权归原作者所有.<Linux命令行与shell脚本编程大全>( ...

  5. Linux_《Linux命令行与shell脚本编程大全》第二章学习总结

    时间:2017年04月05日 说明:本文部分内容均摘取自书籍<Linux命令行与shell脚本编程大全>,版权归原作者所有.<Linux命令行与shell脚本编程大全>(第三版 ...

  6. Linux_《Linux命令行与shell脚本编程大全》第十章学习总结

    时间:2017年08月24日星期四 说明:本文部分内容均摘取自书籍<Linux命令行与shell脚本编程大全>,版权归原作者所有.<Linux命令行与shell脚本编程大全>( ...

  7. 【2018深信服 醒狮计划】《Linux命令行与Shell脚本编程大全》学习笔记

    2018深信服"醒狮计划"笔记 第3周(5.02-5.13) 课程 必修 选修 基本要求 Shell编程 <Linux命令行与Shell脚本编程大全> <Perl ...

  8. linux脚本求命令行上整数和,《Linux命令行与shell脚本编程大全》 第二十二章 学习札记...

    <Linux命令行与shell脚本编程大全> 第二十二章 学习笔记 第二十二章:使用其他shell 什么是dash shell Debian的dash shell是ash shell的直系 ...

  9. linux运维自动化脚本,linux运维自动化shell脚本小工具

    linux运维shell 脚本小工具,如要分享此文章,请注明文章出处,以下脚本仅供参考,若放置在服务器上出错,后果请自负 1.检测cpu剩余百分比 #!/bin/bash #Inspect CPU # ...

最新文章

  1. Machine Learning - Andrew Ng on Coursera (Week 6)
  2. 无线循环里面 string = “i”会内存溢出吗?_记一次公司JVM堆溢出抽茧剥丝定位的过程...
  3. com.esri.android,解决ArcGIS Android Could not find class 'com.esri.android.map.MapView'问题
  4. leetcode 434. 字符串中的单词数(Java版)
  5. 编写程序判断两个数组是否相等,然后编写一段类似的程序比较两个 vector。
  6. linux usb学习笔记
  7. 浅谈前端自动化构建 -- Grunt、Gulp、FIS
  8. 注册表和计算机用户名关系,IUSR_计算机名和IWAM_计算机名帐户的用户名和密码...
  9. 如何减少silverlight XAP包的尺寸
  10. python朴素贝叶斯分类的手写数字识别_关于利用机器学习进行手写数字的的识别...
  11. 飞鱼科技2019笔试题
  12. 啦啦外卖43.5学习研究开发
  13. c语言九宫格拼图程序,C语言简单游戏编程学习入门之九宫格拼图
  14. bilibili哔哩哔哩网页版中视频资源下载方法(无需任何工具)
  15. python簇状柱形图_使用Matplotlib绘制堆积条形图
  16. 宁向东管理课:自我力
  17. vba学习笔记 数组的LBound和UBound
  18. 蘑菇街php面试,蘑菇街面试
  19. 披荆斩棘Linux之清理空间
  20. Unity Steam_VR 开发工具插件 VRTK自带案例分析(第一部分)

热门文章

  1. oracle显示linesize,SQL Plus输出结果的格式化(linesize、pagesize)
  2. mos 控制交流_小米智能排插的220V交流电压信号的开关控制电路设计
  3. xshell连接成功但无法输入命令_如何解决cisco设备无法进入系统问题?
  4. 基于hadoop构建对象存储系统_Hadoop社区正式支持腾讯云对象存储COS
  5. java 取栈顶元素_java集合系列(7)Stack
  6. 小程序 cover-view 字体_【企商云】2021年,要知道的9个小程序开发流程清单
  7. html阴影 渐变,CSS3:图层阴影及渐变
  8. game module 停止运行_详解流量复制解决方案--NGINX的ngx_http_mirror_module模块实现
  9. 双重差分模型能做固定效应吗_互助问答第53期:控制时间效应、交互项等问题...
  10. pb 查询客户端ip地址_特别篇-SAP 客户端(配置、测试、生产)