如何编写一个优雅的Shell脚本(二)

简介

继上一篇,本文主要描述一个shell脚本的基本组成

公共模块

## 自定义写日志函数
function writelog() {
  echo "[`date -d '%Y-%m-%d %H:%M:%S'`][$$]: $1" |tess -a $tmplogfile
}


# 脚本的核心业务程序应该使用该函数去调用,控制程序的运行状态和日志管理
function EXESH_CMD() {
  writelog "execute [$CMD] begining ...."
  eval $CMD  1>&2 > $tmplogfile
  cat $tmplogfile >> $logfile
  ret=$?
  if [  $ret -ne 0 ]; then
    # 如果返回状态不为0 ,则程序出现了错误,将错误日志直接打印终端,并退出程序
    cat $tmplogfile
    exit 1
  else
    # 状态码为0 表示程序运行成功,成功,直接打印
    writelog "finished [$CMD]."
  fi
}

脚本头部

#!/bin/sh
#############################################################
## 文件:xxxx
## 描述:xxxx
## 日期:yyyy-MM-dd
## 作者:xxxxx
############################################################
########################修改记录#############################
#日期        版本     作者      修改描述
#2018-11-04  V01.000 xxx       描述修改内容。。。
#................
###########################################################
VERSION="V01.000"
tmplogfile="/tmp/result.$$.`date+%S`.log"
logfile=`basename $0`.log

脚本公共模块

####################公共模块########################
## 加载自定义环境变量
source /path/common.sh
###################################################

脚本主体

#####################脚本主体################################
writelog "Program starting....(Version=$VERSION)"
CMD="核心脚本"
EXESH_CMD
CMD="核心脚本"
EXESH_CMD
.....
#############################################################

脚本末尾

writelog "Program Finished"
exit 0

 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值