shell脚本模板

#!/bin/bash
########################################
# 脚本名称:  shell_template.sh
# 脚本版本:  v1.0
# 功能描述:  脚本模板
# 参数说明:  None
# 核心逻辑:  None
# 脚本作者:  Shiyang Zhu
# 联系邮箱:  zhushiyang@lightchain.ltd
# 创建时间:  2022-05-17
#######################################

#######################################
# 全局变量:
#   SCRIPT_DIR       脚本所在目录
#   SCRIPT_NAME      脚本名称
#   LOG_DIR          日志目录
#   LOG_FILE         日志文件
#   LOCK_FILE        锁文件
#######################################
SCRIPT_DIR=$(dirname $(readlink -f "$0"))
SCRIPT_NAME="$0"
LOG_DIR=/var/log/shell/${SCRIPT_NAME}
LOG_FILE=${LOG_DIR}/$(date +%Y-%m-%d).log
LOCK_FILE=/tmp/

[ ! -d ${LOG_DIR} ] && mkdir -p ${LOG_DIR}

# 错误日志函数
function err_log() {
    echo "[$(date +'%Y-%m-%dT%H:%M:%S%z')]: [ERROR] $@" |tee -a ${LOG_FILE}
    exit 1
}

# 正常日志函数
function log(){
    echo "[$(date +'%Y-%m-%dT%H:%M:%S%z')]: [INFO] $@" |tee -a ${LOG_FILE}
}

# 提示函数
function usage(){
    echo "Usage: ${SCRIPT_NAME} {一些参数}"
}

# 添加锁函数
function lock(){
    touch ${LOCK_FILE}
}

# 删除锁函数
function unlock(){
    rm -f ${LOCK_FILE}
}

#######################################
# 依赖命令检查函数
# 局部变量:
#   CMDS: 依赖命令列表,使用空格分隔
#######################################
function check_cmd(){
    local CMDS="jq tree tree2"
    for CMD in ${CMDS};do
        local CHECK_RESULT=$(rpm -qa ${CMD}|wc -l)
        if [[ ${CHECK_RESULT} -eq 0 ]];then
            err_log "${CMD}命令不存在,请手动进行安装!"
        fi
    done
}

check_cmd


# 主函数
main(){
    case $1 in
        "option")
            func1
            ;;
        *)
            usage;
    esac
}

# 调用主函数
main $1
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值