fix: 修复 select_services 返回值问题

This commit is contained in:
mango
2026-04-17 00:37:42 +08:00
parent ef31ad3409
commit 1476c1a52c

View File

@@ -431,8 +431,10 @@ restart_smartdns() {
# ============ 服务选择菜单 ============ # ============ 服务选择菜单 ============
SELECTED_SERVICES=()
select_services() { select_services() {
local selected=() SELECTED_SERVICES=()
echo "" echo ""
echo -e "${YELLOW}选择要解锁的服务(可多选,空格分隔):${NC}" echo -e "${YELLOW}选择要解锁的服务(可多选,空格分隔):${NC}"
@@ -452,19 +454,17 @@ select_services() {
for choice in $choices; do for choice in $choices; do
case $choice in case $choice in
1) selected+=("stream") ;; 1) SELECTED_SERVICES+=("stream") ;;
2) selected+=("ai") ;; 2) SELECTED_SERVICES+=("ai") ;;
3) selected+=("shorts") ;; 3) SELECTED_SERVICES+=("shorts") ;;
4) selected+=("spotify") ;; 4) SELECTED_SERVICES+=("spotify") ;;
5) selected+=("game") ;; 5) SELECTED_SERVICES+=("game") ;;
6) selected+=("chatgpt") ;; 6) SELECTED_SERVICES+=("chatgpt") ;;
7) selected+=("claude") ;; 7) SELECTED_SERVICES+=("claude") ;;
8) selected=("stream" "ai" "shorts" "spotify" "game" "chatgpt" "claude"); break ;; 8) SELECTED_SERVICES=("stream" "ai" "shorts" "spotify" "game" "chatgpt" "claude"); break ;;
*) echo -e "${RED}无效选项: $choice${NC}" ;; *) echo -e "${RED}无效选项: $choice${NC}" ;;
esac esac
done done
echo "${selected[@]}"
} }
# ============ 主菜单 ============ # ============ 主菜单 ============
@@ -497,8 +497,8 @@ menu_unlocker() {
configure_firewall_unlocker configure_firewall_unlocker
;; ;;
3) 3)
local services=$(select_services) select_services
for svc in $services; do for svc in "${SELECTED_SERVICES[@]}"; do
add_service_to_sniproxy "$svc" add_service_to_sniproxy "$svc"
done done
;; ;;
@@ -558,8 +558,8 @@ menu_client() {
return 1 return 1
} }
local services=$(select_services) select_services
for svc in $services; do for svc in "${SELECTED_SERVICES[@]}"; do
configure_smartdns_unlocker "$unlocker_ip" "$svc" configure_smartdns_unlocker "$unlocker_ip" "$svc"
done done
@@ -568,7 +568,7 @@ menu_client() {
echo "" echo ""
echo -e "${GREEN}配置完成!${NC}" echo -e "${GREEN}配置完成!${NC}"
echo "解锁机: $unlocker_ip" echo "解锁机: $unlocker_ip"
echo "分流服务: $services" echo "分流服务: ${SELECTED_SERVICES[*]}"
;; ;;
2) 2)
local current_unlocker=$(grep "address /netflix.com/" /etc/smartdns/smartdns.conf 2>/dev/null | head -1 | awk -F'/' '{print $3}') local current_unlocker=$(grep "address /netflix.com/" /etc/smartdns/smartdns.conf 2>/dev/null | head -1 | awk -F'/' '{print $3}')
@@ -580,8 +580,8 @@ menu_client() {
unlocker_ip=${unlocker_ip:-$current_unlocker} unlocker_ip=${unlocker_ip:-$current_unlocker}
fi fi
local services=$(select_services) select_services
for svc in $services; do for svc in "${SELECTED_SERVICES[@]}"; do
configure_smartdns_unlocker "$unlocker_ip" "$svc" configure_smartdns_unlocker "$unlocker_ip" "$svc"
done done