mirror of
				https://gitee.com/SuperManito/LinuxMirrors
				synced 2025-11-04 08:20:28 +08:00 
			
		
		
		
	优化
This commit is contained in:
		@@ -244,7 +244,7 @@ WARN="\033[1;43m 警告 ${PLAIN}"
 | 
			
		||||
ERROR="\033[1;31m✘${PLAIN}"
 | 
			
		||||
FAIL="\033[1;31m✘${PLAIN}"
 | 
			
		||||
TIP="\033[1;44m 提示 ${PLAIN}"
 | 
			
		||||
WORKING="\033[1;36m>_${PLAIN}"
 | 
			
		||||
WORKING="\033[1;36m◉${PLAIN}"
 | 
			
		||||
 | 
			
		||||
function main() {
 | 
			
		||||
    permission_judgment
 | 
			
		||||
@@ -618,7 +618,7 @@ function run_start() {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function run_end() {
 | 
			
		||||
    echo -e "\n✨️ \033[1;34mPowered by https://linuxmirrors.cn\033[0m\n"
 | 
			
		||||
    echo -e "\n✨️ \033[3;1mPowered by \033[34mhttps://linuxmirrors.cn\033[0m\n"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
## 报错退出
 | 
			
		||||
@@ -1619,7 +1619,7 @@ function change_mirrors_main() {
 | 
			
		||||
        print_diff
 | 
			
		||||
    fi
 | 
			
		||||
    ## 更新软件源
 | 
			
		||||
    echo -e "\n$WORKING 开始${SYNC_MIRROR_TEXT}...\n"
 | 
			
		||||
    echo -e "\n$WORKING ${SYNC_MIRROR_TEXT}...\n"
 | 
			
		||||
    case "${SYSTEM_FACTIONS}" in
 | 
			
		||||
    "${SYSTEM_DEBIAN}" | "${SYSTEM_OPENKYLIN}")
 | 
			
		||||
        apt-get update
 | 
			
		||||
@@ -2546,25 +2546,25 @@ function interactive_select_mirror() {
 | 
			
		||||
    unset options[${#options[@]}-1]
 | 
			
		||||
    local selected=0
 | 
			
		||||
    local start=0
 | 
			
		||||
    local page_size=$(($(tput lines) - 3)) # 减去1行用于显示提示信息
 | 
			
		||||
    local page_size=$(($(tput lines 2>/dev/null) - 3)) # 减去3行用于显示提示信息
 | 
			
		||||
    function clear_menu() {
 | 
			
		||||
        tput rc
 | 
			
		||||
        tput rc 2>/dev/null
 | 
			
		||||
        for ((i = 0; i < ${#options[@]} + 1; i++)); do
 | 
			
		||||
            echo -e "\r\033[K"
 | 
			
		||||
        done
 | 
			
		||||
        tput rc
 | 
			
		||||
        tput rc 2>/dev/null
 | 
			
		||||
    }
 | 
			
		||||
    function cleanup() {
 | 
			
		||||
        clear_menu
 | 
			
		||||
        tput rc
 | 
			
		||||
        tput cnorm
 | 
			
		||||
        tput rmcup
 | 
			
		||||
        echo -e "\n${TIP} ${RED}操作已取消${PLAIN}\n"
 | 
			
		||||
        tput rc 2>/dev/null
 | 
			
		||||
        tput cnorm 2>/dev/null
 | 
			
		||||
        tput rmcup 2>/dev/null
 | 
			
		||||
        echo -e "\n\033[1;44m 提示 \033[0m \033[31m操作已取消\033[0m\n"
 | 
			
		||||
        exit 130
 | 
			
		||||
    }
 | 
			
		||||
    function draw_menu() {
 | 
			
		||||
        tput clear
 | 
			
		||||
        tput cup 0 0
 | 
			
		||||
        tput clear 2>/dev/null
 | 
			
		||||
        tput cup 0 0 2>/dev/null
 | 
			
		||||
        echo -e "${message}"
 | 
			
		||||
        local end=$((start + page_size - 1))
 | 
			
		||||
        if [ $end -ge ${#options[@]} ]; then
 | 
			
		||||
@@ -2586,9 +2586,9 @@ function interactive_select_mirror() {
 | 
			
		||||
        fi
 | 
			
		||||
        echo "$key"
 | 
			
		||||
    }
 | 
			
		||||
    tput smcup              # 保存当前屏幕并切换到新屏幕
 | 
			
		||||
    tput sc                 # 保存光标位置
 | 
			
		||||
    tput civis              # 隐藏光标
 | 
			
		||||
    tput smcup 2>/dev/null  # 保存当前屏幕并切换到新屏幕
 | 
			
		||||
    tput sc 2>/dev/null     # 保存光标位置
 | 
			
		||||
    tput civis 2>/dev/null  # 隐藏光标
 | 
			
		||||
    trap "cleanup" INT TERM # 捕捉脚本结束时恢复光标
 | 
			
		||||
    draw_menu               # 初始化菜单位置
 | 
			
		||||
    # 处理选择
 | 
			
		||||
@@ -2623,9 +2623,9 @@ function interactive_select_mirror() {
 | 
			
		||||
        draw_menu
 | 
			
		||||
    done
 | 
			
		||||
    # clear_menu # 清除菜单
 | 
			
		||||
    tput cnorm # 恢复光标
 | 
			
		||||
    tput rmcup # 恢复之前的屏幕
 | 
			
		||||
    # tput rc    # 恢复光标位置
 | 
			
		||||
    tput cnorm 2>/dev/null # 恢复光标
 | 
			
		||||
    tput rmcup 2>/dev/null # 恢复之前的屏幕
 | 
			
		||||
    # tput rc 2>/dev/null # 恢复光标位置
 | 
			
		||||
    # 处理结果
 | 
			
		||||
    _SELECT_RESULT="${options[$selected]}"
 | 
			
		||||
}
 | 
			
		||||
@@ -2638,19 +2638,19 @@ function interactive_select_boolean() {
 | 
			
		||||
    local original_line
 | 
			
		||||
    function store_position() {
 | 
			
		||||
        # 保存菜单开始前的行位置
 | 
			
		||||
        original_line=$(tput lines)
 | 
			
		||||
        original_line=$(tput lines 2>/dev/null)
 | 
			
		||||
    }
 | 
			
		||||
    function clear_menu() {
 | 
			
		||||
        # 向上移动到菜单开始位置并清除菜单
 | 
			
		||||
        for ((i = 0; i < ${menu_height}; i++)); do
 | 
			
		||||
            tput cuu1 # 光标上移一行
 | 
			
		||||
            tput el   # 清除当前行
 | 
			
		||||
            tput cuu1 2>/dev/null # 光标上移一行
 | 
			
		||||
            tput el 2>/dev/null   # 清除当前行
 | 
			
		||||
        done
 | 
			
		||||
    }
 | 
			
		||||
    function cleanup() {
 | 
			
		||||
        clear_menu
 | 
			
		||||
        tput cnorm
 | 
			
		||||
        echo -e "\n${TIP} ${RED}操作已取消${PLAIN}\n"
 | 
			
		||||
        tput cnorm 2>/dev/null
 | 
			
		||||
        echo -e "\n\033[1;44m 提示 \033[0m \033[31m操作已取消\033[0m\n"
 | 
			
		||||
        exit 130
 | 
			
		||||
    }
 | 
			
		||||
    function draw_menu() {
 | 
			
		||||
@@ -2658,9 +2658,9 @@ function interactive_select_boolean() {
 | 
			
		||||
        echo -e "╭─ ${message}"
 | 
			
		||||
        echo -e "│"
 | 
			
		||||
        if [ "$selected" -eq 0 ]; then
 | 
			
		||||
            echo -e "╰─ \033[32m●\033[0m 是\033[2m / ○ 否\033[0m"
 | 
			
		||||
            echo -e "╰─ \033[34m●\033[0m 是\033[2m / ○ 否\033[0m"
 | 
			
		||||
        else
 | 
			
		||||
            echo -e "╰─ \033[2m○ 是 / \033[0m\033[32m●\033[0m 否"
 | 
			
		||||
            echo -e "╰─ \033[2m○ 是 / \033[0m\033[34m●\033[0m 否"
 | 
			
		||||
        fi
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@@ -2672,8 +2672,8 @@ function interactive_select_boolean() {
 | 
			
		||||
        fi
 | 
			
		||||
        echo "$key"
 | 
			
		||||
    }
 | 
			
		||||
    tput civis     # 隐藏光标
 | 
			
		||||
    store_position # 记录当前位置
 | 
			
		||||
    tput civis 2>/dev/null # 隐藏光标
 | 
			
		||||
    store_position         # 记录当前位置
 | 
			
		||||
    trap "cleanup" INT TERM
 | 
			
		||||
    draw_menu # 初始化菜单位置
 | 
			
		||||
    # 处理选择
 | 
			
		||||
@@ -2713,7 +2713,7 @@ function interactive_select_boolean() {
 | 
			
		||||
        echo -e "╰─ \033[2m○ 是 / \033[0m\033[32m●\033[0m \033[1m否\033[0m"
 | 
			
		||||
        _SELECT_RESULT="false"
 | 
			
		||||
    fi
 | 
			
		||||
    tput cnorm # 恢复光标
 | 
			
		||||
    tput cnorm 2>/dev/null # 恢复光标
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
##############################################################################
 | 
			
		||||
 
 | 
			
		||||
@@ -120,7 +120,7 @@ WARN="\033[1;43m 警告 ${PLAIN}"
 | 
			
		||||
ERROR="\033[1;31m✘${PLAIN}"
 | 
			
		||||
FAIL="\033[1;31m✘${PLAIN}"
 | 
			
		||||
TIP="\033[1;44m 提示 ${PLAIN}"
 | 
			
		||||
WORKING="\033[1;36m>_${PLAIN}"
 | 
			
		||||
WORKING="\033[1;36m◉${PLAIN}"
 | 
			
		||||
 | 
			
		||||
function main() {
 | 
			
		||||
    permission_judgment
 | 
			
		||||
@@ -322,7 +322,7 @@ function run_start() {
 | 
			
		||||
 | 
			
		||||
## 运行结束
 | 
			
		||||
function run_end() {
 | 
			
		||||
    echo -e "\n✨️ \033[1;34mPowered by https://linuxmirrors.cn\033[0m\n"
 | 
			
		||||
    echo -e "\n✨️ \033[3;1mPowered by \033[34mhttps://linuxmirrors.cn\033[0m\n"
 | 
			
		||||
    # echo -e "\n     ------ 脚本运行结束 ------"
 | 
			
		||||
    # echo -e ' \033[0;1;35;95m┌─\033[0;1;31;91m──\033[0;1;33;93m──\033[0;1;32;92m──\033[0;1;36;96m──\033[0;1;34;94m──\033[0;1;35;95m──\033[0;1;31;91m──\033[0;1;33;93m──\033[0;1;32;92m──\033[0;1;36;96m──\033[0;1;34;94m──\033[0;1;35;95m──\033[0;1;31;91m──\033[0;1;33;93m──\033[0;1;32;92m──\033[0;1;36;96m┐\033[0m'
 | 
			
		||||
    # echo -e ' \033[0;1;31;91m│▞\033[0;1;33;93m▀▖\033[0m            \033[0;1;32;92m▙▗\033[0;1;36;96m▌\033[0m      \033[0;1;31;91m▗\033[0;1;33;93m▐\033[0m     \033[0;1;34;94m│\033[0m'
 | 
			
		||||
@@ -718,7 +718,7 @@ function install_dependency_packages() {
 | 
			
		||||
        rm -rf $Dir_YumRepos/*docker*.repo
 | 
			
		||||
        ;;
 | 
			
		||||
    esac
 | 
			
		||||
    echo -e "\n$WORKING 开始${SYNC_MIRROR_TEXT}...\n"
 | 
			
		||||
    echo -e "\n$WORKING ${SYNC_MIRROR_TEXT}...\n"
 | 
			
		||||
    case "${SYSTEM_FACTIONS}" in
 | 
			
		||||
    "${SYSTEM_DEBIAN}")
 | 
			
		||||
        package_manager="apt-get"
 | 
			
		||||
@@ -1098,25 +1098,25 @@ function interactive_select_mirror() {
 | 
			
		||||
    unset options[${#options[@]}-1]
 | 
			
		||||
    local selected=0
 | 
			
		||||
    local start=0
 | 
			
		||||
    local page_size=$(($(tput lines) - 3)) # 减去1行用于显示提示信息
 | 
			
		||||
    local page_size=$(($(tput lines 2>/dev/null) - 3)) # 减去3行用于显示提示信息
 | 
			
		||||
    function clear_menu() {
 | 
			
		||||
        tput rc
 | 
			
		||||
        tput rc 2>/dev/null
 | 
			
		||||
        for ((i = 0; i < ${#options[@]} + 1; i++)); do
 | 
			
		||||
            echo -e "\r\033[K"
 | 
			
		||||
        done
 | 
			
		||||
        tput rc
 | 
			
		||||
        tput rc 2>/dev/null
 | 
			
		||||
    }
 | 
			
		||||
    function cleanup() {
 | 
			
		||||
        clear_menu
 | 
			
		||||
        tput rc
 | 
			
		||||
        tput cnorm
 | 
			
		||||
        tput rmcup
 | 
			
		||||
        echo -e "\n${TIP} ${RED}操作已取消${PLAIN}\n"
 | 
			
		||||
        tput rc 2>/dev/null
 | 
			
		||||
        tput cnorm 2>/dev/null
 | 
			
		||||
        tput rmcup 2>/dev/null
 | 
			
		||||
        echo -e "\n\033[1;44m 提示 \033[0m \033[31m操作已取消\033[0m\n"
 | 
			
		||||
        exit 130
 | 
			
		||||
    }
 | 
			
		||||
    function draw_menu() {
 | 
			
		||||
        tput clear
 | 
			
		||||
        tput cup 0 0
 | 
			
		||||
        tput clear 2>/dev/null
 | 
			
		||||
        tput cup 0 0 2>/dev/null
 | 
			
		||||
        echo -e "${message}"
 | 
			
		||||
        local end=$((start + page_size - 1))
 | 
			
		||||
        if [ $end -ge ${#options[@]} ]; then
 | 
			
		||||
@@ -1138,9 +1138,9 @@ function interactive_select_mirror() {
 | 
			
		||||
        fi
 | 
			
		||||
        echo "$key"
 | 
			
		||||
    }
 | 
			
		||||
    tput smcup              # 保存当前屏幕并切换到新屏幕
 | 
			
		||||
    tput sc                 # 保存光标位置
 | 
			
		||||
    tput civis              # 隐藏光标
 | 
			
		||||
    tput smcup 2>/dev/null  # 保存当前屏幕并切换到新屏幕
 | 
			
		||||
    tput sc 2>/dev/null     # 保存光标位置
 | 
			
		||||
    tput civis 2>/dev/null  # 隐藏光标
 | 
			
		||||
    trap "cleanup" INT TERM # 捕捉脚本结束时恢复光标
 | 
			
		||||
    draw_menu               # 初始化菜单位置
 | 
			
		||||
    # 处理选择
 | 
			
		||||
@@ -1175,9 +1175,9 @@ function interactive_select_mirror() {
 | 
			
		||||
        draw_menu
 | 
			
		||||
    done
 | 
			
		||||
    # clear_menu # 清除菜单
 | 
			
		||||
    tput cnorm # 恢复光标
 | 
			
		||||
    tput rmcup # 恢复之前的屏幕
 | 
			
		||||
    # tput rc    # 恢复光标位置
 | 
			
		||||
    tput cnorm 2>/dev/null # 恢复光标
 | 
			
		||||
    tput rmcup 2>/dev/null # 恢复之前的屏幕
 | 
			
		||||
    # tput rc 2>/dev/null # 恢复光标位置
 | 
			
		||||
    # 处理结果
 | 
			
		||||
    _SELECT_RESULT="${options[$selected]}"
 | 
			
		||||
}
 | 
			
		||||
@@ -1190,19 +1190,19 @@ function interactive_select_boolean() {
 | 
			
		||||
    local original_line
 | 
			
		||||
    function store_position() {
 | 
			
		||||
        # 保存菜单开始前的行位置
 | 
			
		||||
        original_line=$(tput lines)
 | 
			
		||||
        original_line=$(tput lines 2>/dev/null)
 | 
			
		||||
    }
 | 
			
		||||
    function clear_menu() {
 | 
			
		||||
        # 向上移动到菜单开始位置并清除菜单
 | 
			
		||||
        for ((i = 0; i < ${menu_height}; i++)); do
 | 
			
		||||
            tput cuu1 # 光标上移一行
 | 
			
		||||
            tput el   # 清除当前行
 | 
			
		||||
            tput cuu1 2>/dev/null # 光标上移一行
 | 
			
		||||
            tput el 2>/dev/null   # 清除当前行
 | 
			
		||||
        done
 | 
			
		||||
    }
 | 
			
		||||
    function cleanup() {
 | 
			
		||||
        clear_menu
 | 
			
		||||
        tput cnorm
 | 
			
		||||
        echo -e "\n${TIP} ${RED}操作已取消${PLAIN}\n"
 | 
			
		||||
        tput cnorm 2>/dev/null
 | 
			
		||||
        echo -e "\n\033[1;44m 提示 \033[0m \033[31m操作已取消\033[0m\n"
 | 
			
		||||
        exit 130
 | 
			
		||||
    }
 | 
			
		||||
    function draw_menu() {
 | 
			
		||||
@@ -1210,9 +1210,9 @@ function interactive_select_boolean() {
 | 
			
		||||
        echo -e "╭─ ${message}"
 | 
			
		||||
        echo -e "│"
 | 
			
		||||
        if [ "$selected" -eq 0 ]; then
 | 
			
		||||
            echo -e "╰─ \033[32m●\033[0m 是\033[2m / ○ 否\033[0m"
 | 
			
		||||
            echo -e "╰─ \033[34m●\033[0m 是\033[2m / ○ 否\033[0m"
 | 
			
		||||
        else
 | 
			
		||||
            echo -e "╰─ \033[2m○ 是 / \033[0m\033[32m●\033[0m 否"
 | 
			
		||||
            echo -e "╰─ \033[2m○ 是 / \033[0m\033[34m●\033[0m 否"
 | 
			
		||||
        fi
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@@ -1224,8 +1224,8 @@ function interactive_select_boolean() {
 | 
			
		||||
        fi
 | 
			
		||||
        echo "$key"
 | 
			
		||||
    }
 | 
			
		||||
    tput civis     # 隐藏光标
 | 
			
		||||
    store_position # 记录当前位置
 | 
			
		||||
    tput civis 2>/dev/null # 隐藏光标
 | 
			
		||||
    store_position         # 记录当前位置
 | 
			
		||||
    trap "cleanup" INT TERM
 | 
			
		||||
    draw_menu # 初始化菜单位置
 | 
			
		||||
    # 处理选择
 | 
			
		||||
@@ -1265,7 +1265,7 @@ function interactive_select_boolean() {
 | 
			
		||||
        echo -e "╰─ \033[2m○ 是 / \033[0m\033[32m●\033[0m \033[1m否\033[0m"
 | 
			
		||||
        _SELECT_RESULT="false"
 | 
			
		||||
    fi
 | 
			
		||||
    tput cnorm # 恢复光标
 | 
			
		||||
    tput cnorm 2>/dev/null # 恢复光标
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
handle_command_options "$@"
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user