Shell脚本模板

#!/bin/bash
# vim:sw=4:ts=4:et
<<INFO
AUTHOR:运维@小兵<邮箱号>
DATE:2021-04-21
DESCRIBE:描述脚本主要功能
SYSTEM:CentOS7/RedHat7
WARNING:警告信息
MODIFY:记录修改信息,方便查看和维护
INFO

export LC_ALL="zh_CN.UTF-8"     #支持中文
set -e            	#打开异常退出功能
# set -x            #打开Debug功能

######################定义变量######################
source /etc/profile		#避免用ansible、Jenkins执行shell脚本出现环境变量不对的问题
WORKDIR="$(cd "$(dirname "$0")" || exit 1;pwd)"		#脚本所在路径
echo "Current Excute: bash ${WORKDIR}/$0 $@"

function_dir=${WORKDIR}/myfunction.lib

#创建日志文件
if [[ ! -d ${WORKDIR}/logs ]];then
    mkdir -p ${WORKDIR}/logs
else
    rm -f ${WORKDIR}/logs/*.log
fi
[[ $UID -ne 0 ]] && echo "[ERROR] Please Use root Excute......" && exit 1

#输出信息
# ${FUNCNAME[0]代表当前函数名,$LINENO代表当前代码行号
echo "$(date "+%Y-%m-%d %T.%N")[ERROR ${FUNCNAME[0]}:$LINENO] Invalid Param"
echo "$(date "+%Y-%m-%d %T.%N")[INFO]:Install Success"
#加载函数库
if [[ -f "$function_dir" ]];then
 	source $function_dir
else
	echo -e "\033[31m函数库不存在\033[0m"
	exit 71
fi

######################功能函数######################
#检查环境
Check_Env() {
    echo "[INFO] Begin Check_Env..."
    [[ $UID -ne 0 ]] && echo "[ERROR] Please Use Admin(root) Excute......" && exit 1
    #检查命令是否存在
    for cmd_bin in curl mvn
    do
        if ! command -v ${cmd_bin} >/dev/null 2>&1;then
            echo "[ERROR] ${cmd_bin} command Not Exist" && exit 1
        fi
    done
    echo "[INFO] Check_Env Success"
}

#帮助信息
Help() {
	cat << EOF
Usage: 
=======================================================================
optional arguments:
	-h	提供帮助信息
	-num	虚拟机编号
EXAMPLE:
	bash $0 -num 10 web1 eth0 192.168.4.1/24	
EOF
}

#打印脚本说明
Print() {
    cat  << EOF
#################################################################################
#1、AUTHOR:
#2、DATE:2020-01-11
#3、功能:为ubuntu系统配置本地apt源和网络apt源
#4、注意事项:配置本地apt源需确保该脚本的同级目录下有正确的离线apt源
#5、制作离线apt源可参考:https://blog.csdn.net/anqixiang/article/details/100018413
#################################################################################
EOF
}
#系统版本
System_Version() {
    cat << EOF
1.ubuntu14.04
2.ubuntu16.04
3.ubuntu18.04
EOF
}
#######################主函数#######################
[[ $# -ne 1 ]] && echo "[ERROR] Invalid Param!!! eg:bash $0 ansible_path" && exit 1
[[ $# -le 5 ]] && echo "[ERROR] Invalid Param!!!,Please Excute:bash $0 -h" && exit 1
#主函数
main() {
    Print
    cecho 32 "开始执行......"
    echo "1.本地源"
    echo "2.网络源"
    read -p  "请选择:" choice
    case ${choice} in
    1)
        Conf_Apt;;
    2)
        echo "1.ubuntu14.04"
        echo "2.ubuntu16.04"
        echo "3.ubuntu18.04"
        read -p "请选择系统版本:" choice
        case ${choice} in
        1)
            Conf_Ubuntu14.04;;
        2)
            Conf_Ubuntu16.04;;
        3)
            Conf_Ubuntu18.04;;
        *)
            cecho 31 "Invalid option!"
        esac
        ;;	    
    *)
        cecho 31 "Invalid option!"
    esac		
}
main

if [[ $# -eq 0 ]];then
    Excute_All
elif [[ "x$1" == "x-c" -a "$#" -eq 2 ]];then
    case $2 in
    system)
        Init_System;;
    *)
        cecho 31 "Invalid option:bash `basename $0` [-h]"
    esac
elif [[ "x$1" == "x-h" ]];then
    Help
else
    Help && exit 1
fi

[[ $# -eq 0 ]] && HELP
while getopts :hnum::a: ARGS
do
	case $ARGS in
	h)
		HELP;;
	nu|m)
		Name=rh7_node$OPTARG;;	
	\?)
		cecho 31 "Invalid option:bash `basename $0` [-h]"
	esac
done

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值