refactor(set_core_config_link): replace recursion with while loop

This commit is contained in:
Sofia
2026-01-12 02:06:05 +08:00
committed by GitHub
parent ffce704f5e
commit d630f7534e

View File

@@ -988,45 +988,48 @@ gen_core_config_link(){ #在线生成工具
fi fi
done done
} }
set_core_config_link(){ #直接导入配置
echo "-----------------------------------------------" # 直接导入配置
echo -e "\033[32m仅限导入完整的配置文件链接\033[0m" set_core_config_link() {
echo "-----------------------------------------------" while true; do
echo -e "注意:\033[31m此功能不兼容“跳过证书验证”功能部分老旧\n设备可能出现x509报错导致节点不通\033[0m" echo "-----------------------------------------------"
echo -e "你也可以搭配在线订阅转换网站或者自建SubStore使用" echo -e "\033[32m仅限导入完整的配置文件链接\033[0m"
echo "$crashcore" | grep -q 'singbox' &&echo -e "singbox内核建议使用\033[32;4mhttps://subv.jwsc.eu.org/\033[0m转换" echo "-----------------------------------------------"
echo "-----------------------------------------------" echo -e "注意:\033[31m此功能不兼容“跳过证书验证”功能部分老旧\n设备可能出现x509报错导致节点不通\033[0m"
echo -e "\033[33m0 返回上级菜单\033[0m" echo -e "你也可以搭配在线订阅转换网站或者自建SubStore使用"
echo "-----------------------------------------------" echo "$crashcore" | grep -q 'singbox' && echo -e "singbox内核建议使用\033[32;4mhttps://subv.jwsc.eu.org/\033[0m转换"
read -p "请输入完整链接 > " link echo "-----------------------------------------------"
test=$(echo $link | grep -iE "tp.*://" ) echo -e "\033[33m0 返回上级菜单\033[0m"
link=`echo ${link/\ \(*\)/''}` #删除恶心的超链接内容 echo "-----------------------------------------------"
link=`echo ${link//\&/\\\&}` #处理分隔符 read -p "请输入完整链接 > " link
if [ -n "$link" -a -n "$test" ];then test=$(echo $link | grep -iE "tp.*://")
echo "-----------------------------------------------" link=$(echo ${link/\ \(*\)/''}) # 删除恶心的超链接内容
echo -e 请检查输入的链接是否正确: link=$(echo ${link//\&/\\&}) # 处理分隔符
echo -e "\033[4;32m$link\033[0m" if [ -n "$link" -a -n "$test" ]; then
read -p "确认导入配置文件?原配置文件将被备份![1/0] > " res echo "-----------------------------------------------"
if [ "$res" = '1' ]; then echo -e "请检查输入的链接是否正确:"
#将用户链接写入配置 echo -e "\033[4;32m$link\033[0m"
Url='' read -p "确认导入配置文件?原配置文件将被备份![1/0] > " res
Https="$link" if [ "$res" = '1' ]; then
setconfig Https "'$Https'" # 将用户链接写入配置
setconfig Url Url=''
#获取在线yaml文件 Https="$link"
jump_core_config setconfig Https "'$Https'"
else setconfig Url
set_core_config_link # 获取在线yaml文件
fi jump_core_config
elif [ "$link" = 0 ];then break
i= fi
else elif [ "$link" = 0 ]; then
echo "-----------------------------------------------" i=
echo -e "\033[31m请输入正确的配置文件链接地址\033[0m" break
echo -e "\033[33m仅支持http、https、ftp以及ftps链接\033[0m" else
sleep 1 echo "-----------------------------------------------"
set_core_config_link echo -e "\033[31m请输入正确的配置文件链接地址\033[0m"
fi echo -e "\033[33m仅支持http、https、ftp以及ftps链接\033[0m"
sleep 1
fi
done
} }
# 配置文件主界面 # 配置文件主界面