Skip to content

Commit 8ff6f6e

Browse files
committed
Update.
1 parent 5004f05 commit 8ff6f6e

1 file changed

Lines changed: 39 additions & 15 deletions

File tree

Snell.sh

Lines changed: 39 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@ export PATH
99
# WebSite: https://about.nange.cn
1010
#=================================================
1111

12-
sh_ver="1.8.1"
12+
sh_ver="1.8.3"
1313
snell_v4_version="4.1.1"
14-
snell_v5_version="5.0.0b3"
14+
snell_v5_version="5.0.0"
1515
script_dir=$(cd "$(dirname "$0")"; pwd)
1616
script_path=$(echo -e "${script_dir}"|awk -F "$0" '{print $1}')
1717
snell_dir="/etc/snell/"
@@ -143,7 +143,7 @@ checkStatus(){
143143
fi
144144
}
145145

146-
# 版本号比较函数
146+
# 版本号比较函数(优先正式版)
147147
compareVersions(){
148148
local version1="$1"
149149
local version2="$2"
@@ -157,8 +157,34 @@ compareVersions(){
157157
return 1 # 相等
158158
fi
159159

160-
# 使用 sort -V 进行版本号比较
161-
if printf '%s\n' "$version1" "$version2" | sort -V | head -1 | grep -q "^$version1$"; then
160+
# 提取基础版本号(去除测试版后缀)
161+
local base_version1=$(echo "$version1" | sed 's/[a-z].*//')
162+
local base_version2=$(echo "$version2" | sed 's/[a-z].*//')
163+
164+
# 检查是否为测试版
165+
local is_beta1=false
166+
local is_beta2=false
167+
[[ "$version1" =~ [a-z] ]] && is_beta1=true
168+
[[ "$version2" =~ [a-z] ]] && is_beta2=true
169+
170+
# 如果基础版本号相同
171+
if [[ "$base_version1" == "$base_version2" ]]; then
172+
# 优先选择正式版
173+
if [[ "$is_beta1" == true && "$is_beta2" == false ]]; then
174+
return 2 # version1 < version2(正式版优先)
175+
elif [[ "$is_beta1" == false && "$is_beta2" == true ]]; then
176+
return 0 # version1 > version2(正式版优先)
177+
fi
178+
# 如果都是测试版或都是正式版,使用字母序比较
179+
if [[ "$version1" < "$version2" ]]; then
180+
return 2
181+
else
182+
return 0
183+
fi
184+
fi
185+
186+
# 基础版本号不同时,使用 sort -V 进行版本号比较
187+
if printf '%s\n' "$base_version1" "$base_version2" | sort -V | head -1 | grep -q "^$base_version1$"; then
162188
return 2 # version1 < version2
163189
else
164190
return 0 # version1 > version2
@@ -325,7 +351,7 @@ downloadSnellV4(){
325351

326352
# 下载并安装 Snell v5(官方源)
327353
downloadSnellV5(){
328-
downloadSnell "${snell_v5_version}" "v5 Beta 官网源版"
354+
downloadSnell "${snell_v5_version}" "v5 官网源版"
329355
}
330356

331357
# 通用下载并安装 Snell 函数(带回退机制)
@@ -387,7 +413,7 @@ installSnell() {
387413
fi
388414
echo -e "选择安装版本${Yellow_font_prefix}[2-5]${Font_color_suffix}
389415
==================================
390-
${Green_font_prefix} 2.${Font_color_suffix} v2 ${Green_font_prefix} 3.${Font_color_suffix} v3 ${Green_font_prefix} 4.${Font_color_suffix} v4 ${Green_font_prefix} 5.${Font_color_suffix} v5${Yellow_font_prefix}(beta)${Font_color_suffix}
416+
${Green_font_prefix} 2.${Font_color_suffix} v2 ${Green_font_prefix} 3.${Font_color_suffix} v3 ${Green_font_prefix} 4.${Font_color_suffix} v4 ${Green_font_prefix} 5.${Font_color_suffix} v5
391417
=================================="
392418
read -e -p "(默认:4.v4):" ver
393419
[[ -z "${ver}" ]] && ver="4"
@@ -547,7 +573,7 @@ ${Green_font_prefix} 1.${Font_color_suffix} TLS ${Green_font_prefix} 2.${Font_c
547573
setVer(){
548574
echo -e "配置 Snell Server 协议版本${Yellow_font_prefix}[2-5]${Font_color_suffix}
549575
==================================
550-
${Green_font_prefix} 2.${Font_color_suffix} v2 ${Green_font_prefix} 3.${Font_color_suffix} v3 ${Green_font_prefix} 4.${Font_color_suffix} v4 ${Green_font_prefix} 5.${Font_color_suffix} v5${Yellow_font_prefix}(beta)${Font_color_suffix}
576+
${Green_font_prefix} 2.${Font_color_suffix} v2 ${Green_font_prefix} 3.${Font_color_suffix} v3 ${Green_font_prefix} 4.${Font_color_suffix} v4 ${Green_font_prefix} 5.${Font_color_suffix} v5
551577
=================================="
552578
read -e -p "(默认:4.v4):" ver
553579
[[ -z "${ver}" ]] && ver="4"
@@ -767,7 +793,6 @@ installSnellV4(){
767793
installSnellV5(){
768794
checkRoot
769795
[[ -e ${snell_bin} ]] && echo -e "${Error} 检测到 Snell Server 已安装,请先卸载旧版再安装新版!" && exit 1
770-
echo -e "${Tip} 您选择的是 v5 ${Yellow_font_prefix}Beta${Font_color_suffix} 版本,此版本为测试版本,可能存在不稳定因素!"
771796
echo -e "${Info} 开始设置 配置..."
772797
setPort
773798
setPSK
@@ -849,8 +874,7 @@ updateV4toV5(){
849874
return 1
850875
fi
851876

852-
echo -e "${Tip} 即将将 Snell Server 从 v4 更新到 v5 ${Yellow_font_prefix}Beta${Font_color_suffix} 版本"
853-
echo -e "${Tip} v5 为测试版本,可能存在不稳定因素!"
877+
echo -e "${Info} 即将将 Snell Server 从 v4 更新到 v5 版本"
854878
echo -e "确定要更新吗?(y/N)"
855879
read -e -p "(默认: n):" confirm
856880
[[ -z "${confirm}" ]] && confirm="n"
@@ -909,7 +933,7 @@ updateV4toV5(){
909933

910934
# 下载并安装 v5,启用回退机制
911935
echo -e "${Info} 开始下载 v5 版本..."
912-
downloadSnell "${target_v5_version}" "v5 Beta 版本" true "${current_v4_version}"
936+
downloadSnell "${target_v5_version}" "v5 版本" true "${current_v4_version}"
913937

914938
if [[ $? -eq 0 ]]; then
915939
# 更新配置文件中的版本号
@@ -927,7 +951,7 @@ updateV4toV5(){
927951
if [[ "$status" == "running" ]]; then
928952
actual_version=$(cat ${snell_version_file} | sed 's/^v//')
929953
echo -e "${Info} v4 到 v5 更新成功!"
930-
echo -e "${Info} 当前版本:v${actual_version} ${Yellow_font_prefix}Beta${Font_color_suffix}"
954+
echo -e "${Info} 当前版本:v${actual_version}"
931955

932956
# 如果实际版本是 v4(说明回退了),更新配置文件版本号
933957
if [[ "$actual_version" =~ ^4\. ]]; then
@@ -1034,7 +1058,7 @@ updateSnellServer(){
10341058
downloadSnell "${latest_available_version}" "v4 最新版" true "${current_installed_version}"
10351059
;;
10361060
"5")
1037-
downloadSnell "${latest_available_version}" "v5 Beta 最新版" true "${current_installed_version}"
1061+
downloadSnell "${latest_available_version}" "v5 最新版" true "${current_installed_version}"
10381062
;;
10391063
*)
10401064
echo -e "${Error} 不支持的版本: v${ver}"
@@ -1513,7 +1537,7 @@ Snell Server 管理脚本 ${Red_font_prefix}[v${sh_ver}]${Font_color_suffix}
15131537
else
15141538
echo -e " ${Green_font_prefix} 3.${Font_color_suffix} 更新 Snell Server"
15151539
fi
1516-
echo -e " ${Green_font_prefix} 4.${Font_color_suffix} v4 更新到 v5${Yellow_font_prefix}(Beta)${Font_color_suffix}
1540+
echo -e " ${Green_font_prefix} 4.${Font_color_suffix} v4 更新到 v5
15171541
——————————————————————————————
15181542
${Green_font_prefix} 5.${Font_color_suffix} 启动 Snell Server
15191543
${Green_font_prefix} 6.${Font_color_suffix} 停止 Snell Server

0 commit comments

Comments
 (0)