定义变量

xpmLJ='/opt/xpm' YunzaiLJ='/opt/Yunzai-Bot' installfor='github.com' RED='\033[0;31m' GREEN='\033[0;32m' RES='\033[0m'

定义函数

xzkuang() { whiptail --title "$1" --menu "$2" "$3" "$4" "$5" "$6" "$7" "$8" "$9" "${10}" "${11}" "${12}" "${13}" "${14}" "${15}" }

jdt() { echo "XXX" | whiptail --title "$1" --gauge "$1" 6 60 0 }

wjjpd() { if [ ! -d $1 ]; then mkdir -p $1 fi }

installapt() { apt-get update apt-get install -y $1 }

zxpd() { $* >> /dev/null 2>&1 & }

定义插件安装函数

install_plugin() { case "$1" in Xpm) if [ ${xpm} = '1' ]; then OPTIONSPL=$(xzkuang '选择插件' '请选择以下插件:'
'1' '网易云点歌插件' OFF
'2' '表情包制作插件' OFF
'3' '谁艾特我插件' OFF
'4' '前瞻兑换码插件' OFF
'5' '原神公告插件' OFF
'6' 'Github解析插件' OFF
'7' '黑名单插件' OFF
'0' '待添加插件' OFF)

        for opt in ${OPTIONSPL}; do
            case $opt in
                '1')
                    cd ${xpmLJ}
                    zxpd nb plugin install nonebot-plugin-songpicker2
                    jdt '网易云点歌插件'
                    ;;
                '2')
                    cd ${xpmLJ}
                    zxpd nb plugin install nonebot-plugin-analysis-bilibili
                    jdt '正在安装 哔哩哔哩解析'
                    ;;
                '3')
                    cd ${xpmLJ}
                    installapt fonts-noto-cjk fonts-noto-color-emoji
                    jdt '正在安装 插件要求的字体'
                    locale-gen zh_CN zh_CN.UTF-8 &&  update-locale LC_ALL=zh_CN.UTF-8 LANG=zh_CN.UTF-8 && fc-cache -fv
                    zxpd nb plugin install nonebot_plugin_memes
                    jdt '正在安装 表情制作插件'
                    ;;
                '4')
                    cd ${xpmLJ}
                    zxpd nb plugin install nonebot-plugin-gscode
                    jdt '正在安装插件 原神直播前瞻兑换码'
                    ;;
                '5')
                    cd ${xpmLJ}
                    zxpd nb plugin install nonebot-plugin-yuanshen-notice
                    jdt '正在安装插件 原神公告'
                    ;;
                '6')
                    cd ${xpmLJ}
                    zxpd nb plugin install nonebot-plugin-githubcard
                    jdt '正在安装插件 Github链接解析'
                    ;;
                '7')
                    cd ${xpmLJ}
                    zxpd nb plugin install nonebot-plugin-blacklist
                    jdt '正在安装插件 黑名单'
                    ;;
            esac
        done
    else
        echo -e "${RED}您当前没有安装小派蒙${RES}"
        echo -e  "输入Y安装小派蒙 输入N退出脚本安装"
        read -r yes
        case $yes in
            Y | y | yes | Yes | YES)
                installxpmbot    
                ;;
            *)
                echo -e "${GREEN}感谢您的使用${RES}"
                hcjx
                ;;
        esac
    fi
    ;;
unXpm)
    if [ ${xpm} = '1' ]; then
        OPTIONSPL=$(xzkuang '选择插件' '请选择以下插件:' \
            '1' '网易云点歌插件' OFF \
            '2' '表情包制作插件' OFF \
            '3' '谁艾特我插件' OFF \
            '4' '前瞻兑换码插件' OFF \
            '5' '原神公告插件' OFF \
            '6' 'Github解析插件' OFF \
            '7' '黑名单插件' OFF \
            '0' '待添加插件' OFF)
        
        for opt in ${OPTIONSPL}; do
            case $opt in
                '1')
                    cd ${xpmLJ}
                    zxpd nb plugin remove nonebot-plugin-songpicker2
                    jdt '网易云点歌插件'
                    ;;
                '2')
                    cd ${xpmLJ}
                    zxpd nb plugin remove nonebot-plugin-analysis-bilibili
                    jdt '正在安装 哔哩哔哩解析'
                    ;;
                '3')
                    cd ${xpmLJ}
                    installapt fonts-noto-cjk fonts-noto-color-emoji
                    jdt '正在安装 插件要求的字体'
                    locale-gen zh_CN zh_CN.UTF-8 &&  update-locale LC_ALL=zh_CN.UTF-8 LANG=zh_CN.UTF-8 && fc-cache -fv
                    zxpd nb plugin remove nonebot_plugin_memes
                    jdt '正在安装 表情制作插件'
                    ;;
                '4')
                    cd ${xpmLJ}
                    zxpd nb plugin remove nonebot-plugin-gscode
                    jdt '正在安装插件 原神直播前瞻兑换码'
                    ;;
                '5')
                    cd ${xpmLJ}
                    zxpd nb plugin remove nonebot-plugin-yuanshen-notice
                    jdt '正在安装插件 原神公告'
                    ;;
                '6')
                    cd ${xpmLJ}
                    zxpd nb plugin remove nonebot-plugin-githubcard
                    jdt '正在安装插件 Github链接解析'
                    ;;
                '7')
                    cd ${xpmLJ}
                    zxpd nb plugin remove nonebot-plugin-blacklist
                    jdt '正在安装插件 黑名单'
                    ;;
            esac
        done
    else
        echo -e "${RED}您当前没有安装小派蒙${RES}"
        echo -e  "输入Y安装小派蒙 输入N退出脚本安装"
        read -r yes
        case $yes in
            Y | y | yes | Yes | YES)
                installxpmbot    
                ;;
            *)
                echo -e "${GREEN}感谢您的使用${RES}"
                hcjx
                ;;
        esac
    fi
    ;;
Yunzai)
    if [ ${Yunzai} = '1' ]; then
        OPTIONSPL=$(xzkuang '云崽bot插件安装--空格选择' '请选择以下选项:' \
            '1' '锅巴插件' OFF \
            '2' '喵喵插件' OFF \
            '3' '文案插件' OFF \
            '4' '星穹铁道插件' OFF \
            '5' '土块插件' OFF \
            3>&1 1>&2 2>&3)
        
        for opt in ${OPTIONSPL}; do
            case $opt in
                '1')
                    cd ${YunzaiLJ}
                    wjjpd './plugins/Guoba-Plugin'
                    zxpd git clone --depth=1 https://"${installfor}"/guoba-yunzai/guoba-plugin.git ./plugins/Guoba-Plugin/ &
                    jdt '锅巴插件'
                    zxpd pnpm install --filter=guoba-plugin
                    jdt '锅巴插件依赖'
                    ;;
                '2')
                    cd ${YunzaiLJ}
                    wjjpd './plugins/miao-plugin'
                    zxpd git clone --depth=1 https://"${installfor}"/yoimiya-kokomi/miao-plugin.git ./plugins/miao-plugin/ &
                    jdt '喵喵插件'
                    zxpd pnpm install --filter=miao-plugin
                    jdt '喵喵插件依赖'
                    ;;
                '3')
                    cd ${YunzaiLJ}
                    wjjpd './plugins/wenan-plugin'
                    zxpd git clone --depth=1 https://gitee.com/white-night-fox/wenan-plugin.git ./plugins/wenan-plugin/ &
                    jdt '文案插件'
                    zxpd pnpm install --filter=wenan-plugin
                    jdt '文案插件依赖'
                    ;;
                '4')
                    cd ${YunzaiLJ}
                    wjjpd './plugins/StarRail-plugin'
                    zxpd git clone --depth=1 https://"${installfor}"/hewang1an/StarRail-plugin.git ./plugins/StarRail-plugin &
                    jdt '星穹铁道插件'
                    zxpd pnpm install --filter=StarRail-plugin
                    jdt '星穹铁道插件依赖'
                    ;;
                '5')
                    cd ${YunzaiLJ}
                    wjjpd './plugins/earth-k-plugin'
                    zxpd git clone --depth=1 https://"${installfor}"/SmallK111407/earth-k-plugin.git &
                    jdt '土块插件'
                    zxpd pnpm install --filter=earth-k-plugin
                    jdt '星穹铁道插件依赖'
                    installapt ffmpeg
                    ;;
            esac
        done
    else
        echo -e "${RED}您当前没有安装Yunzai-Bot${RES}"
        echo -e  "输入Y安装Yunzai-Bot 输入N退出脚本安装"
        read -r yes
        case $yes in
            Y | y | yes | Yes | YES)
                installyzbot    
                ;;
            *)
                echo -e "${GREEN}感谢您的使用${RES}"
                hcjx
                ;;
        esac
    fi
    ;;
unYunzai)
    if [ ${Yunzai} = '1' ]; then
        OPTIONSPL=$(xzkuang '云崽bot插件安装--空格选择' '请选择以下选项:' \
            '1' '锅巴插件' OFF \
            '2' '喵喵插件' OFF \
            '3' '文案插件' OFF \
            '4' '星穹铁道插件' OFF \
            '5' '土块插件' OFF \
            3>&1 1>&2 2>&3)
        
        for opt in ${OPTIONSPL}; do
            case $opt in
                '1')
                    cd ${YunzaiLJ}
                    zxpd rm -rfv './plugins/Guoba-Plugin' &
                    jdt '移除锅巴插件'
                    ;;
                '2')
                    cd ${YunzaiLJ}
                    zxpd rm -rfv './plugins/miao-plugin' &
                    jdt '移除喵喵插件'
                    ;;
                '3')
                    cd ${YunzaiLJ}
                    zxpd rm -rfv './plugins/wenan-plugin' &
                    jdt '移除文案插件'
                    ;;
                '4')
                    cd ${YunzaiLJ}
                    zxpd rm -rfv './plugins/StarRail-plugin' &
                    jdt '移除星穹铁道插件'
                    ;;
                '4')
                    cd ${YunzaiLJ}
                    zxpd rm -rfv './plugins/earth-k-plugin' &
                    jdt '移除土块插件'
                    ;;
            esac
        done
    else
        echo -e "${RED}您当前没有安装Yunzai-Bot${RES}"
        echo -e  "输入Y安装Yunzai-Bot 输入N退出脚本安装"
        read -r yes
        case $yes in
            Y | y | yes | Yes | YES)
                installyzbot    
                ;;
            *)
                echo -e "${GREEN}感谢您的使用${RES}"
                hcjx
                ;;
        esac
    fi
    ;;
esac

}

主程序

chajian "$1"

使用函数和变量优化重复代码:高效安装和卸载插件脚本

原文地址: http://www.cveoy.top/t/topic/oQf8 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录