refactor: replace recursion with while loop in override

This commit is contained in:
Sofia
2026-01-09 00:55:19 +08:00
committed by GitHub
parent da30e623ce
commit 492a2fe898

View File

@@ -746,77 +746,78 @@ set_singbox_adv(){ #自定义singbox配置文件
echo "-----------------------------------------------" echo "-----------------------------------------------"
echo -e "使用前请务必参考配置教程:\033[32;4m https://juewuy.github.io/nWTjEpkSK \033[0m" echo -e "使用前请务必参考配置教程:\033[32;4m https://juewuy.github.io/nWTjEpkSK \033[0m"
} }
override(){ #配置文件覆写
[ -z "$rule_link" ] && rule_link=1 # 配置文件覆写
[ -z "$server_link" ] && server_link=1 override() {
echo "-----------------------------------------------" while true; do
echo -e "\033[30;47m 欢迎使用配置文件覆写功能!\033[0m" [ -z "$rule_link" ] && rule_link=1
echo "-----------------------------------------------" [ -z "$server_link" ] && server_link=1
echo -e " 1 自定义\033[32m端口及秘钥\033[0m" echo "-----------------------------------------------"
echo -e " 2 管理\033[36m自定义规则\033[0m" echo -e "\033[30;47m 欢迎使用配置文件覆写功能!\033[0m"
echo "$crashcore" | grep -q 'singbox' || { echo "-----------------------------------------------"
echo -e " 3 管理\033[33m自定义节点\033[0m" echo -e " 1 自定义\033[32m端口及秘钥\033[0m"
echo -e " 4 管理\033[36m自定义策略组\033[0m" echo -e " 2 管理\033[36m自定义规则\033[0m"
} echo "$crashcore" | grep -q 'singbox' || {
echo -e " 5 \033[32m自定义\033[0m高级功能" echo -e " 3 管理\033[33m自定义节点\033[0m"
[ "$disoverride" != 1 ] && echo -e " 9 \033[33m禁用\033[0m配置文件覆写" echo -e " 4 管理\033[36m自定义策略组\033[0m"
echo "-----------------------------------------------" }
[ "$inuserguide" = 1 ] || echo -e " 0 返回上级菜单" echo -e " 5 \033[32m自定义\033[0m高级功能"
read -p "请输入对应数字 > " num [ "$disoverride" != 1 ] && echo -e " 9 \033[33m禁用\033[0m配置文件覆写"
case "$num" in echo "-----------------------------------------------"
0) [ "$inuserguide" = 1 ] || echo -e " 0 返回上级菜单"
;; read -p "请输入对应数字 > " num
1) case "$num" in
if [ -n "$(pidof CrashCore)" ];then "" | 0)
echo "-----------------------------------------------" break
echo -e "\033[33m检测到服务正在运行需要先停止服务\033[0m" ;;
read -p "是否停止服务?(1/0) > " res 1)
if [ "$res" = "1" ];then if [ -n "$(pidof CrashCore)" ]; then
"$CRASHDIR"/start.sh stop echo "-----------------------------------------------"
setport echo -e "\033[33m检测到服务正在运行需要先停止服务\033[0m"
fi read -p "是否停止服务?(1/0) > " res
else if [ "$res" = "1" ]; then
setport "$CRASHDIR"/start.sh stop
fi setport
override fi
;; else
2) setport
setrules fi
override ;;
;; 2)
3) setrules
setproxies ;;
override 3)
;; setproxies
4) ;;
setgroups 4)
override setgroups
;; ;;
5) 5)
echo "$crashcore" | grep -q 'singbox' && set_singbox_adv || set_clash_adv echo "$crashcore" | grep -q 'singbox' && set_singbox_adv || set_clash_adv
sleep 3 sleep 3
override ;;
;; 9)
9) echo "-----------------------------------------------"
echo "-----------------------------------------------" echo -e "\033[33m此功能可能会导致严重问题启用后脚本中大部分功能都将禁用\033[0m"
echo -e "\033[33m此功能可能会导致严重问题启用后脚本中大部分功能都将禁用\033[0m" echo -e "如果你不是非常了解$crashcore的运行机制,切勿开启\033[0m"
echo -e "如果你不是非常了解$crashcore的运行机制,切勿开启\033[0m" echo -e "\033[33m继续后如出现任何问题请务必自行解决一切提问恕不受理\033[0m"
echo -e "\033[33m继续后如出现任何问题请务必自行解决一切提问恕不受理\033[0m" echo "-----------------------------------------------"
echo "-----------------------------------------------" sleep 2
sleep 2 read -p "我确认遇到问题可以自行解决[1/0] > " res
read -p "我确认遇到问题可以自行解决[1/0] > " res [ "$res" = '1' ] && {
[ "$res" = '1' ] && { disoverride=1
disoverride=1 setconfig disoverride $disoverride
setconfig disoverride $disoverride echo "-----------------------------------------------"
echo "-----------------------------------------------" echo -e "\033[32m设置成功\033[0m"
echo -e "\033[32m设置成功\033[0m" }
} ;;
override *)
;; errornum
*) sleep 1
errornum break
;; ;;
esac esac
done
} }
gen_link_config(){ #选择在线规则 gen_link_config(){ #选择在线规则