mirror of
https://github.com/juewuy/ShellCrash.git
synced 2026-03-12 00:11:31 +00:00
refactor: replace recursion with while loop in override
This commit is contained in:
@@ -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(){ #选择在线规则
|
||||||
|
|||||||
Reference in New Issue
Block a user