使用函数和变量优化重复代码:高效安装和卸载插件脚本
定义变量
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 著作权归作者所有。请勿转载和采集!