refactor: replace recursion with while loop in settings

This commit is contained in:
Sofia
2026-01-08 20:48:10 +08:00
committed by GitHub
parent da30e623ce
commit b93ac17f2e

View File

@@ -4,12 +4,14 @@
[ -n "$__IS_MODULE_2_SETTINGS_LOADED" ] && return [ -n "$__IS_MODULE_2_SETTINGS_LOADED" ] && return
__IS_MODULE_2_SETTINGS_LOADED=1 __IS_MODULE_2_SETTINGS_LOADED=1
settings() { #功能设置 # 功能设置
settings() {
while true; do
# 获取设置默认显示 # 获取设置默认显示
[ -z "$skip_cert" ] && skip_cert=ON [ -z "$skip_cert" ] && skip_cert=ON
[ -z "$sniffer" ] && sniffer=OFF [ -z "$sniffer" ] && sniffer=OFF
[ -z "$dns_mod" ] && dns_mod='redir_host' [ -z "$dns_mod" ] && dns_mod='redir_host'
#
echo "-----------------------------------------------" echo "-----------------------------------------------"
echo -e "\033[30;47m欢迎使用功能设置菜单\033[0m" echo -e "\033[30;47m欢迎使用功能设置菜单\033[0m"
echo "-----------------------------------------------" echo "-----------------------------------------------"
@@ -28,7 +30,8 @@ settings() { #功能设置
echo "-----------------------------------------------" echo "-----------------------------------------------"
read -p "请输入对应数字 > " num read -p "请输入对应数字 > " num
case "$num" in case "$num" in
0) "" | 0)
break
;; ;;
1) 1)
if [ "$USER" != "root" -a "$USER" != "admin" ]; then if [ "$USER" != "root" -a "$USER" != "admin" ]; then
@@ -39,17 +42,14 @@ settings() { #功能设置
set_redir_mod set_redir_mod
fi fi
sleep 1 sleep 1
settings
;; ;;
2) 2)
. "$CRASHDIR"/menus/dns.sh && set_dns_mod . "$CRASHDIR"/menus/dns.sh && set_dns_mod
sleep 1 sleep 1
settings
;; ;;
3) 3)
. "$CRASHDIR"/menus/fw_filter.sh && set_fw_filter . "$CRASHDIR"/menus/fw_filter.sh && set_fw_filter
sleep 1 sleep 1
settings
;; ;;
4) 4)
echo "-----------------------------------------------" echo "-----------------------------------------------"
@@ -61,7 +61,6 @@ settings() { #功能设置
skip_cert=OFF skip_cert=OFF
fi fi
setconfig skip_cert $skip_cert setconfig skip_cert $skip_cert
settings
;; ;;
5) 5)
echo "-----------------------------------------------" echo "-----------------------------------------------"
@@ -81,7 +80,6 @@ settings() { #功能设置
sniffer=OFF sniffer=OFF
fi fi
setconfig sniffer $sniffer setconfig sniffer $sniffer
settings
;; ;;
6) 6)
if [ -n "$(pidof CrashCore)" ]; then if [ -n "$(pidof CrashCore)" ]; then
@@ -95,11 +93,9 @@ settings() { #功能设置
else else
set_adv_config set_adv_config
fi fi
settings
;; ;;
8) 8)
set_ipv6 set_ipv6
settings
;; ;;
9) 9)
echo "-----------------------------------------------" echo "-----------------------------------------------"
@@ -135,8 +131,11 @@ settings() { #功能设置
;; ;;
*) *)
errornum errornum
sleep 1
break
;; ;;
esac esac
done
} }
set_redir_mod() { #路由模式设置 set_redir_mod() { #路由模式设置