From 1b3e4892a1b36196352573f62a97ff344bcfa941 Mon Sep 17 00:00:00 2001 From: Sofia <253282481+sofia-riese@users.noreply.github.com> Date: Tue, 20 Jan 2026 00:29:27 +0800 Subject: [PATCH] refactor(set_ddns): replace recursion with while loop --- scripts/menus/ddns.sh | 57 ++++++++++++++++++++++--------------------- 1 file changed, 29 insertions(+), 28 deletions(-) diff --git a/scripts/menus/ddns.sh b/scripts/menus/ddns.sh index fa89e6a2..1b2d241a 100644 --- a/scripts/menus/ddns.sh +++ b/scripts/menus/ddns.sh @@ -33,34 +33,35 @@ EOF } set_ddns() { - echo "-----------------------------------------------" - read -r -p "请输入你的域名 > " str - [ -z "$str" ] && domain="$domain" || domain="$str" - echo "-----------------------------------------------" - read -r -p "请输入用户名或邮箱 > " str - [ -z "$str" ] && username="$username" || username="$str" - echo "-----------------------------------------------" - read -r -p "请输入密码或令牌秘钥 > " str - [ -z "$str" ] && password="$password" || password="$str" - echo "-----------------------------------------------" - read -r -p "请输入检测更新间隔(单位:分钟;默认为10) > " check_interval - [ -z "$check_interval" ] || [ "$check_interval" -lt 1 -o "$check_interval" -gt 1440 ] && check_interval=10 - echo "-----------------------------------------------" - read -r -p "请输入强制更新间隔(单位:小时;默认为24) > " force_interval - [ -z "$force_interval" ] || [ "$force_interval" -lt 1 -o "$force_interval" -gt 240 ] && force_interval=24 - echo "-----------------------------------------------" - echo -e "请核对如下信息:" - echo -e "服务商: \033[32m$service\033[0m" - echo -e "域名: \033[32m$domain\033[0m" - echo -e "用户名: \033[32m$username\033[0m" - echo -e "检测间隔: \033[32m$check_interval\033[0m" - echo "-----------------------------------------------" - read -r -p "确认添加?(1/0) > " res - if [ "$res" = 1 ]; then - add_ddns - else - set_ddns - fi + while true; do + echo "-----------------------------------------------" + read -r -p "请输入你的域名 > " str + [ -z "$str" ] && domain="$domain" || domain="$str" + echo "-----------------------------------------------" + read -r -p "请输入用户名或邮箱 > " str + [ -z "$str" ] && username="$username" || username="$str" + echo "-----------------------------------------------" + read -r -p "请输入密码或令牌秘钥 > " str + [ -z "$str" ] && password="$password" || password="$str" + echo "-----------------------------------------------" + read -r -p "请输入检测更新间隔(单位:分钟;默认为10) > " check_interval + [ -z "$check_interval" ] || [ "$check_interval" -lt 1 -o "$check_interval" -gt 1440 ] && check_interval=10 + echo "-----------------------------------------------" + read -r -p "请输入强制更新间隔(单位:小时;默认为24) > " force_interval + [ -z "$force_interval" ] || [ "$force_interval" -lt 1 -o "$force_interval" -gt 240 ] && force_interval=24 + echo "-----------------------------------------------" + echo -e "请核对如下信息:" + echo -e "服务商: \033[32m$service\033[0m" + echo -e "域名: \033[32m$domain\033[0m" + echo -e "用户名: \033[32m$username\033[0m" + echo -e "检测间隔: \033[32m$check_interval\033[0m" + echo "-----------------------------------------------" + read -r -p "确认添加?(1/0) > " res + if [ "$res" = 1 ]; then + add_ddns + break + fi + done } set_ddns_service() {