常用shell模版

一、Shell模版

#!/bin/bash
# created by saikey0379@example.com on 2024-04-03
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH

NAME_SCRIPT=$(basename $0)

function usage() {
    echo "Usage: ${NAME_SCRIPT} [OPTION]... "
    echo "Example: ${NAME_SCRIPT} -k xxx -c test -n default -s nginx"

    echo "Options"
    echo " -k|--key        decrypt for token"
    echo " -c|--cluster    cluster of workload"
    echo " -n|--namespace  namespace of workload"
    echo " -s|--service    servicename of workload"
    echo ""

    exit 0
}

function invalid() {
    echo "${NAME_SCRIPT}: invalid option -- '$option'"
    echo "Try '${NAME_SCRIPT}: --help' for more information."
    exit 1
}

GREEN='\033[0;32m'
RED='\033[0;31m'
WHITE='\033[0m'

function logOut(){
    if [ $? == 0 ];then
      echo -e "${GREEN}SUCCESS${WHITE}: $1" 
    else
      echo -e "${RED}ERROR ${WHITE}: $1"
      exit 1
    fi
}


ARGS=`getopt -o k:c:n:s:h --long key:,cluster:,namespace:,service:,help -- "$@" 2> /tmp/${NAME_SCRIPT}.error`
if [ $? != 0 ] ; then option=$(head -n 1 /tmp/${NAME_SCRIPT}.error | awk -F "'" '{print$2}'); invalid ; fi
if [[ $@ == "" ]] ; then usage ; fi
eval set -- $ARGS
while true;do
    case "$1" in
        -k|--key)
            KEY=$2
            shift 2
            ;;
        -c|--cluster)
            CLUSTER=$2
            shift 2
            ;;
        -n|--namespace)
            NAMESPACE=$2
            shift 2
            ;;
        -s|--service)
            SERVICE=$2
            shift 2
            ;;
        -h|--help)
            usage
            shift
            ;;
        --)
            shift
            break
            ;;
        *)
            usage
            shift
            break
            ;;
    esac
done

if [[ $@ != "" ]];then option=$@;invalid;fi

for i in openssl jq;
do
    which $i &> /dev/null
    if [ $? != 0 ];then
        yum -y install $i &> /dev/null
        logOut "yum -y install $i"
    fi
done

case ${CLUSTER} in
test)
    KEY_ENCRYPT="xxxxxxxxxxxxx=="
    ;;
*)
    exit
    ;;
esac

#KEY_DECRYPT=$(echo ${GW_KEY_ENCRYPT} | openssl enc -aes-256-cbc -d -pass pass:${KEY} -pbkdf2 -iter 100000 -A -base64)
KEY_DECRYPT=$(echo ${GW_KEY_ENCRYPT} | openssl enc -aes-256-cbc -d -pass pass:${KEY} -A -base64 2> /dev/null)

# 以下补充主体内容
echo ${KEY}
echo ${CLUSTER}
echo ${NAMESPACE}
echo ${SERVICE}
echo ${KEY_DECRYPT}

二、备注

getopt -o k:c:n:s:h --long key:,cluster:,namespace:,service:,help

-o 后入参为单字符参数,无【:】 表示无value,如:-h
--long 后入参为字符串参数,无【:】表示无value,如:--help
  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值