mirror of
				https://gitee.com/SuperManito/LinuxMirrors
				synced 2025-11-04 08:20:28 +08:00 
			
		
		
		
	语法格式化 #33
This commit is contained in:
		
							
								
								
									
										148
									
								
								ChangeMirrors.sh
									
									
									
									
									
								
							
							
						
						
									
										148
									
								
								ChangeMirrors.sh
									
									
									
									
									
								
							@@ -1,6 +1,6 @@
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
## Author: SuperManito
 | 
			
		||||
## Modified: 2023-10-14
 | 
			
		||||
## Modified: 2023-10-20
 | 
			
		||||
## License: MIT
 | 
			
		||||
## GitHub: https://github.com/SuperManito/LinuxMirrors
 | 
			
		||||
## Website: https://linuxmirrors.cn
 | 
			
		||||
@@ -307,13 +307,11 @@ function EnvJudgment() {
 | 
			
		||||
        SYSTEM_VERSION_CODENAME="${DEBIAN_CODENAME:-"$(lsb_release -cs)"}"
 | 
			
		||||
        ;;
 | 
			
		||||
    "${SYSTEM_REDHAT}")
 | 
			
		||||
        SYSTEM_JUDGMENT="$(cat $File_RedHatRelease | awk -F ' ' '{printf$1}')"
 | 
			
		||||
        SYSTEM_JUDGMENT="$(awk '{printf $1}' $File_RedHatRelease)"
 | 
			
		||||
        ## Red Hat Enterprise Linux
 | 
			
		||||
        cat $File_RedHatRelease | grep -q "${SYSTEM_RHEL}"
 | 
			
		||||
        [ $? -eq 0 ] && SYSTEM_JUDGMENT="${SYSTEM_RHEL}"
 | 
			
		||||
        grep -q "${SYSTEM_RHEL}" $File_RedHatRelease && SYSTEM_JUDGMENT="${SYSTEM_RHEL}"
 | 
			
		||||
        ## CentOS Stream
 | 
			
		||||
        cat $File_RedHatRelease | grep -q "${SYSTEM_CENTOS_STREAM}"
 | 
			
		||||
        [ $? -eq 0 ] && SYSTEM_JUDGMENT="${SYSTEM_CENTOS_STREAM}"
 | 
			
		||||
        grep -q "${SYSTEM_CENTOS_STREAM}" $File_RedHatRelease && SYSTEM_JUDGMENT="${SYSTEM_CENTOS_STREAM}"
 | 
			
		||||
        ;;
 | 
			
		||||
    "${SYSTEM_OPENCLOUDOS}")
 | 
			
		||||
        SYSTEM_JUDGMENT="${SYSTEM_OPENCLOUDOS}"
 | 
			
		||||
@@ -406,8 +404,9 @@ function EnvJudgment() {
 | 
			
		||||
    esac
 | 
			
		||||
    ## 定义软件源分支名称
 | 
			
		||||
    if [[ -z "${SOURCE_BRANCH}" ]]; then
 | 
			
		||||
        ## 默认为系统名称小写
 | 
			
		||||
        SOURCE_BRANCH="$(echo "${SYSTEM_JUDGMENT,,}" | sed "s/ /-/g")"
 | 
			
		||||
        ## 默认为系统名称小写,替换空格
 | 
			
		||||
        SOURCE_BRANCH="${SYSTEM_JUDGMENT,,}"
 | 
			
		||||
        SOURCE_BRANCH="${SOURCE_BRANCH// /-}"
 | 
			
		||||
        ## 处理特殊
 | 
			
		||||
        case "${SYSTEM_JUDGMENT}" in
 | 
			
		||||
        "${SYSTEM_DEBIAN}")
 | 
			
		||||
@@ -491,7 +490,8 @@ function ChooseMirrors() {
 | 
			
		||||
        echo -e ''
 | 
			
		||||
 | 
			
		||||
        local list_arr=()
 | 
			
		||||
        local list_arr_sum="$(eval echo \${#$1[@]})"
 | 
			
		||||
        local list_arr_sum
 | 
			
		||||
        list_arr_sum="$(eval echo \${#$1[@]})"
 | 
			
		||||
        for ((a = 0; a < $list_arr_sum; a++)); do
 | 
			
		||||
            list_arr[$a]="$(eval echo \${$1[a]})"
 | 
			
		||||
        done
 | 
			
		||||
@@ -507,13 +507,13 @@ function ChooseMirrors() {
 | 
			
		||||
                [[ $(echo "${tmp_mirror_name}" | grep -c "‘") -gt 0 ]] && let default_mirror_name_length+=$(echo "${tmp_mirror_name}" | grep -c "‘")
 | 
			
		||||
                [[ $(echo "${tmp_mirror_name}" | grep -c "’") -gt 0 ]] && let default_mirror_name_length+=$(echo "${tmp_mirror_name}" | grep -c "’")
 | 
			
		||||
                # 非一般字符长度
 | 
			
		||||
                tmp_mirror_name_length=$(StringLength $(echo "${tmp_mirror_name}" | sed "s| ||g" | sed "s|[0-9a-zA-Z\.\=\:\_\(\)\'\"-\/\!·]||g;"))
 | 
			
		||||
                tmp_mirror_name_length=$(StringLength "$(echo "${tmp_mirror_name// /}" | sed "s|[0-9a-zA-Z\.\=\:\_\(\)\'\"-\/\!·]||g;")")
 | 
			
		||||
                ## 填充空格
 | 
			
		||||
                tmp_spaces_nums=$(($(($default_mirror_name_length - ${tmp_mirror_name_length} - $(StringLength "${tmp_mirror_name}"))) / 2))
 | 
			
		||||
                tmp_spaces_nums=$(($((default_mirror_name_length - tmp_mirror_name_length - $(StringLength "${tmp_mirror_name}"))) / 2))
 | 
			
		||||
                for ((j = 1; j <= ${tmp_spaces_nums}; j++)); do
 | 
			
		||||
                    tmp_mirror_name="${tmp_mirror_name} "
 | 
			
		||||
                done
 | 
			
		||||
                printf " ❖  %-$(($default_mirror_name_length + ${tmp_mirror_name_length}))s %4s\n" "${tmp_mirror_name}" "$arr_num)"
 | 
			
		||||
                printf " ❖  %-$((default_mirror_name_length + tmp_mirror_name_length))s %4s\n" "${tmp_mirror_name}" "$arr_num)"
 | 
			
		||||
            done
 | 
			
		||||
        else
 | 
			
		||||
            for ((i = 0; i < ${#list_arr[@]}; i++)); do
 | 
			
		||||
@@ -543,8 +543,9 @@ function ChooseMirrors() {
 | 
			
		||||
            fi
 | 
			
		||||
        done
 | 
			
		||||
        if [[ -z "${USE_INTRANET_SOURCE}" ]]; then
 | 
			
		||||
            local CHOICE=$(echo -e "\n${BOLD}└─ 默认使用软件源的公网地址,是否继续? [Y/n] ${PLAIN}")
 | 
			
		||||
            read -p "${CHOICE}" INPUT
 | 
			
		||||
            local CHOICE
 | 
			
		||||
            CHOICE=$(echo -e "\n${BOLD}└─ 默认使用软件源的公网地址,是否继续? [Y/n] ${PLAIN}")
 | 
			
		||||
            read -rp "${CHOICE}" INPUT
 | 
			
		||||
            [[ -z "${INPUT}" ]] && INPUT=Y
 | 
			
		||||
            case "${INPUT}" in
 | 
			
		||||
            [Yy] | [Yy][Ee][Ss]) ;;
 | 
			
		||||
@@ -563,13 +564,14 @@ function ChooseMirrors() {
 | 
			
		||||
 | 
			
		||||
    function Title() {
 | 
			
		||||
        local system_name="${SYSTEM_PRETTY_NAME:-"${SYSTEM_NAME} ${SYSTEM_VERSION_NUMBER}"}"
 | 
			
		||||
        local arch=""${DEVICE_ARCH}""
 | 
			
		||||
        local date="$(date "+%Y-%m-%d %H:%M:%S")"
 | 
			
		||||
        local timezone="$(timedatectl status 2>/dev/null | grep "Time zone" | awk -F ':' '{print$2}' | awk -F ' ' '{print$1}')"
 | 
			
		||||
        local arch="${DEVICE_ARCH}"
 | 
			
		||||
        local date_time time_zone
 | 
			
		||||
        date_time="$(date "+%Y-%m-%d %H:%M:%S")"
 | 
			
		||||
        time_zone="$(timedatectl status 2>/dev/null | grep "Time zone" | awk -F ':' '{print$2}' | awk -F ' ' '{print$1}')"
 | 
			
		||||
 | 
			
		||||
        echo -e ''
 | 
			
		||||
        echo -e " 运行环境 ${BLUE}${system_name} ${arch}${PLAIN}"
 | 
			
		||||
        echo -e " 系统时间 ${BLUE}${date} ${timezone}${PLAIN}"
 | 
			
		||||
        echo -e " 系统时间 ${BLUE}${date_time} ${time_zone}${PLAIN}"
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    Title
 | 
			
		||||
@@ -590,16 +592,18 @@ function ChooseMirrors() {
 | 
			
		||||
            PrintMirrorsList "${mirror_list_name}" 31
 | 
			
		||||
        fi
 | 
			
		||||
 | 
			
		||||
        local CHOICE=$(echo -e "\n${BOLD}└─ 请选择并输入你想使用的软件源 [ 1-$(eval echo \${#$mirror_list_name[@]}) ]:${PLAIN}")
 | 
			
		||||
        local CHOICE
 | 
			
		||||
        CHOICE=$(echo -e "\n${BOLD}└─ 请选择并输入你想使用的软件源 [ 1-$(eval echo \${#$mirror_list_name[@]}) ]:${PLAIN}")
 | 
			
		||||
        while true; do
 | 
			
		||||
            read -p "${CHOICE}" INPUT
 | 
			
		||||
            read -rp "${CHOICE}" INPUT
 | 
			
		||||
            case "${INPUT}" in
 | 
			
		||||
            [1-9] | [1-9][0-9] | [1-9][0-9][0-9])
 | 
			
		||||
                local tmp_source="$(eval echo \${${mirror_list_name}[$(($INPUT - 1))]})"
 | 
			
		||||
                local tmp_source
 | 
			
		||||
                tmp_source="$(eval echo \${${mirror_list_name}[$((INPUT - 1))]})"
 | 
			
		||||
                if [[ -z "${tmp_source}" ]]; then
 | 
			
		||||
                    echo -e "\n$WARN 请输入有效的数字序号!"
 | 
			
		||||
                else
 | 
			
		||||
                    SOURCE="$(eval echo \${${mirror_list_name}[$(($INPUT - 1))]} | awk -F '@' '{print$2}')"
 | 
			
		||||
                    SOURCE="$(eval echo \${${mirror_list_name}[$((INPUT - 1))]} | awk -F '@' '{print$2}')"
 | 
			
		||||
                    # echo "${SOURCE}"
 | 
			
		||||
                    # exit
 | 
			
		||||
                    break
 | 
			
		||||
@@ -624,8 +628,9 @@ function ChooseWebProtocol() {
 | 
			
		||||
        if [[ "${ONLY_HTTP}" == "True" ]]; then
 | 
			
		||||
            WEB_PROTOCOL="http"
 | 
			
		||||
        else
 | 
			
		||||
            local CHOICE=$(echo -e "\n${BOLD}└─ 软件源是否使用 HTTP 协议? [Y/n] ${PLAIN}")
 | 
			
		||||
            read -p "${CHOICE}" INPUT
 | 
			
		||||
            local CHOICE
 | 
			
		||||
            CHOICE=$(echo -e "\n${BOLD}└─ 软件源是否使用 HTTP 协议? [Y/n] ${PLAIN}")
 | 
			
		||||
            read -rp "${CHOICE}" INPUT
 | 
			
		||||
            [[ -z "${INPUT}" ]] && INPUT=Y
 | 
			
		||||
            case "${INPUT}" in
 | 
			
		||||
            [Yy] | [Yy][Ee][Ss])
 | 
			
		||||
@@ -664,11 +669,13 @@ function ChooseInstallEPEL() {
 | 
			
		||||
            "${SYSTEM_RHEL}" | "${SYSTEM_CENTOS}" | "${SYSTEM_CENTOS_STREAM}" | "${SYSTEM_ROCKY}" | "${SYSTEM_ALMALINUX}" | "${SYSTEM_OPENCLOUDOS}")
 | 
			
		||||
                Check
 | 
			
		||||
                if [ ${VERIFICATION_EPEL} -eq 0 ]; then
 | 
			
		||||
                    local CHOICE=$(echo -e "\n${BOLD}└─ 检测到系统已安装 EPEL 附加软件包,是否替换/覆盖软件源? [Y/n] ${PLAIN}")
 | 
			
		||||
                    local CHOICE
 | 
			
		||||
                    CHOICE=$(echo -e "\n${BOLD}└─ 检测到系统已安装 EPEL 附加软件包,是否替换/覆盖软件源? [Y/n] ${PLAIN}")
 | 
			
		||||
                else
 | 
			
		||||
                    local CHOICE=$(echo -e "\n${BOLD}└─ 是否安装 EPEL 附加软件包? [Y/n] ${PLAIN}")
 | 
			
		||||
                    local CHOICE
 | 
			
		||||
                    CHOICE=$(echo -e "\n${BOLD}└─ 是否安装 EPEL 附加软件包? [Y/n] ${PLAIN}")
 | 
			
		||||
                fi
 | 
			
		||||
                read -p "${CHOICE}" INPUT
 | 
			
		||||
                read -rp "${CHOICE}" INPUT
 | 
			
		||||
                [[ -z "${INPUT}" ]] && INPUT=Y
 | 
			
		||||
                case "${INPUT}" in
 | 
			
		||||
                [Yy] | [Yy][Ee][Ss])
 | 
			
		||||
@@ -703,8 +710,9 @@ function CloseFirewall() {
 | 
			
		||||
            if [[ "${CLOSE_FIREWALL}" == "true" ]]; then
 | 
			
		||||
                Main
 | 
			
		||||
            elif [[ -z "${CLOSE_FIREWALL}" ]]; then
 | 
			
		||||
                local CHOICE=$(echo -e "\n${BOLD}└─ 是否关闭防火墙和 SELinux ? [Y/n] ${PLAIN}")
 | 
			
		||||
                read -p "${CHOICE}" INPUT
 | 
			
		||||
                local CHOICE
 | 
			
		||||
                CHOICE=$(echo -e "\n${BOLD}└─ 是否关闭防火墙和 SELinux ? [Y/n] ${PLAIN}")
 | 
			
		||||
                read -rp "${CHOICE}" INPUT
 | 
			
		||||
                [[ -z "${INPUT}" ]] && INPUT=Y
 | 
			
		||||
                case "${INPUT}" in
 | 
			
		||||
                [Yy] | [Yy][Ee][Ss])
 | 
			
		||||
@@ -727,17 +735,18 @@ function BackupOriginMirrors() {
 | 
			
		||||
        local backup_file=$2
 | 
			
		||||
        local type="$3"
 | 
			
		||||
 | 
			
		||||
        if [ -s $target_file ]; then
 | 
			
		||||
            if [ -s $backup_file ]; then
 | 
			
		||||
        if [ -s "$target_file" ]; then
 | 
			
		||||
            if [ -s "$backup_file" ]; then
 | 
			
		||||
                if [[ "${IGNORE_BACKUP_TIPS}" == "false" ]]; then
 | 
			
		||||
                    local CHOICE_BACKUP1=$(echo -e "\n${BOLD}└─ 检测到系统中存在已备份的${type}源文件,是否跳过覆盖备份? [Y/n] ${PLAIN}")
 | 
			
		||||
                    read -p "${CHOICE_BACKUP1}" INPUT
 | 
			
		||||
                    local CHOICE_BACKUP1
 | 
			
		||||
                    CHOICE_BACKUP1=$(echo -e "\n${BOLD}└─ 检测到系统中存在已备份的${type}源文件,是否跳过覆盖备份? [Y/n] ${PLAIN}")
 | 
			
		||||
                    read -rp "${CHOICE_BACKUP1}" INPUT
 | 
			
		||||
                    [[ -z "${INPUT}" ]] && INPUT=Y
 | 
			
		||||
                    case "${INPUT}" in
 | 
			
		||||
                    [Yy] | [Yy][Ee][Ss]) ;;
 | 
			
		||||
                    [Nn] | [Nn][Oo])
 | 
			
		||||
                        echo ''
 | 
			
		||||
                        cp -rvf $target_file $backup_file 2>&1
 | 
			
		||||
                        cp -rvf "$target_file" "$backup_file" 2>&1
 | 
			
		||||
                        BACKUPED="true"
 | 
			
		||||
                        ;;
 | 
			
		||||
                    *)
 | 
			
		||||
@@ -747,13 +756,13 @@ function BackupOriginMirrors() {
 | 
			
		||||
                fi
 | 
			
		||||
            else
 | 
			
		||||
                echo ''
 | 
			
		||||
                cp -rvf $target_file $backup_file 2>&1
 | 
			
		||||
                cp -rvf "$target_file" "$backup_file" 2>&1
 | 
			
		||||
                BACKUPED="true"
 | 
			
		||||
                echo -e "\n$COMPLETE 已备份原有${type}源文件"
 | 
			
		||||
                sleep 1s
 | 
			
		||||
            fi
 | 
			
		||||
        else
 | 
			
		||||
            [ ! -f $target_file ] && touch $target_file
 | 
			
		||||
            [ -f "$target_file" ] || touch "$target_file"
 | 
			
		||||
            echo -e ''
 | 
			
		||||
        fi
 | 
			
		||||
    }
 | 
			
		||||
@@ -763,21 +772,22 @@ function BackupOriginMirrors() {
 | 
			
		||||
        local VERIFICATION_FILES=1
 | 
			
		||||
        local VERIFICATION_BACKUPFILES=1
 | 
			
		||||
 | 
			
		||||
        [ -d $target_dir ] && ls $target_dir | grep '\.repo$' -q
 | 
			
		||||
        [ -d "$target_dir" ] && ls "$target_dir" | grep '\.repo$' -q
 | 
			
		||||
        VERIFICATION_FILES=$?
 | 
			
		||||
        [ -d $backup_dir ] && ls $backup_dir | grep '\.repo$' -q
 | 
			
		||||
        [ -d "$backup_dir" ] && ls "$backup_dir" | grep '\.repo$' -q
 | 
			
		||||
        VERIFICATION_BACKUPFILES=$?
 | 
			
		||||
        if [ ${VERIFICATION_FILES} -eq 0 ]; then
 | 
			
		||||
            if [ -d $backup_dir ] && [ ${VERIFICATION_BACKUPFILES} -eq 0 ]; then
 | 
			
		||||
            if [ -d "$backup_dir" ] && [ ${VERIFICATION_BACKUPFILES} -eq 0 ]; then
 | 
			
		||||
                if [[ "${IGNORE_BACKUP_TIPS}" == "false" ]]; then
 | 
			
		||||
                    local CHOICE_BACKUP3=$(echo -e "\n${BOLD}└─ 检测到系统中存在已备份的 repo 源文件,是否跳过覆盖备份? [Y/n] ${PLAIN}")
 | 
			
		||||
                    read -p "${CHOICE_BACKUP3}" INPUT
 | 
			
		||||
                    local CHOICE_BACKUP3
 | 
			
		||||
                    CHOICE_BACKUP3=$(echo -e "\n${BOLD}└─ 检测到系统中存在已备份的 repo 源文件,是否跳过覆盖备份? [Y/n] ${PLAIN}")
 | 
			
		||||
                    read -rp "${CHOICE_BACKUP3}" INPUT
 | 
			
		||||
                    [[ -z "${INPUT}" ]] && INPUT=Y
 | 
			
		||||
                    case "${INPUT}" in
 | 
			
		||||
                    [Yy] | [Yy][Ee][Ss]) ;;
 | 
			
		||||
                    [Nn] | [Nn][Oo])
 | 
			
		||||
                        echo ''
 | 
			
		||||
                        cp -rvf $target_dir/* $backup_dir 2>&1
 | 
			
		||||
                        cp -rvf "${target_dir}/*" "$backup_dir" 2>&1
 | 
			
		||||
                        BACKUPED="true"
 | 
			
		||||
                        ;;
 | 
			
		||||
                    *)
 | 
			
		||||
@@ -786,15 +796,15 @@ function BackupOriginMirrors() {
 | 
			
		||||
                    esac
 | 
			
		||||
                fi
 | 
			
		||||
            else
 | 
			
		||||
                [ ! -d $backup_dir ] && mkdir -p $backup_dir
 | 
			
		||||
                [ ! -d "$backup_dir" ] && mkdir -p "$backup_dir"
 | 
			
		||||
                echo ''
 | 
			
		||||
                cp -rvf $target_dir/* $backup_dir 2>&1
 | 
			
		||||
                cp -rvf "${target_dir}/*" "$backup_dir" 2>&1
 | 
			
		||||
                BACKUPED="true"
 | 
			
		||||
                echo -e "\n$COMPLETE 已备份原有 repo 源文件"
 | 
			
		||||
                sleep 1s
 | 
			
		||||
            fi
 | 
			
		||||
        else
 | 
			
		||||
            [ -d $target_dir ] || mkdir -p $target_dir
 | 
			
		||||
            [ -d "$target_dir" ] || mkdir -p "$target_dir"
 | 
			
		||||
        fi
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@@ -843,7 +853,7 @@ function RemoveOriginMirrors() {
 | 
			
		||||
                            ;;
 | 
			
		||||
                        *)
 | 
			
		||||
                            if [ -f $Dir_YumRepos/epel.repo ]; then
 | 
			
		||||
                                ls $Dir_YumRepos/ | egrep -v epel | xargs rm -rf
 | 
			
		||||
                                ls $Dir_YumRepos/ | grep -Ev epel | xargs -0 rm -rf
 | 
			
		||||
                            else
 | 
			
		||||
                                rm -rf $Dir_YumRepos/*
 | 
			
		||||
                            fi
 | 
			
		||||
@@ -852,7 +862,7 @@ function RemoveOriginMirrors() {
 | 
			
		||||
                        ;;
 | 
			
		||||
                    "${SYSTEM_CENTOS}")
 | 
			
		||||
                        if [ -f $Dir_YumRepos/epel.repo ]; then
 | 
			
		||||
                            ls $Dir_YumRepos/ | egrep -v epel | xargs rm -rf
 | 
			
		||||
                            ls $Dir_YumRepos/ | grep -Ev epel | xargs -0 rm -rf
 | 
			
		||||
                        else
 | 
			
		||||
                            rm -rf $Dir_YumRepos/*
 | 
			
		||||
                        fi
 | 
			
		||||
@@ -910,9 +920,9 @@ function ChangeMirrors() {
 | 
			
		||||
            local backup_file=$1
 | 
			
		||||
            local origin_file=$2
 | 
			
		||||
            if [[ -s $backup_file && -s $origin_file ]]; then
 | 
			
		||||
                if [[ "$(cat $backup_file)" != "$(cat $origin_file)" ]]; then
 | 
			
		||||
                if [[ "$(cat "$backup_file")" != "$(cat "$origin_file")" ]]; then
 | 
			
		||||
                    echo -e "\n${BLUE}${backup_file}${PLAIN} -> ${BLUE}${origin_file}${PLAIN}"
 | 
			
		||||
                    diff $backup_file $origin_file -d --color=always -I -B -E
 | 
			
		||||
                    diff "$backup_file" "$origin_file" -d --color=always -I -B -E
 | 
			
		||||
                fi
 | 
			
		||||
            fi
 | 
			
		||||
        }
 | 
			
		||||
@@ -926,7 +936,7 @@ function ChangeMirrors() {
 | 
			
		||||
                origin_file="$origin_dir/$item"
 | 
			
		||||
                if [[ "$(cat $backup_file)" != "$(cat $origin_file)" ]]; then
 | 
			
		||||
                    echo -e "\n${BLUE}${backup_file}${PLAIN} -> ${BLUE}${origin_file}${PLAIN}"
 | 
			
		||||
                    diff $backup_file $origin_file -d --color=always -I -B -E
 | 
			
		||||
                    diff "$backup_file" "$origin_file" -d --color=always -I -B -E
 | 
			
		||||
                fi
 | 
			
		||||
            done
 | 
			
		||||
        }
 | 
			
		||||
@@ -971,7 +981,7 @@ function ChangeMirrors() {
 | 
			
		||||
        ;;
 | 
			
		||||
    esac
 | 
			
		||||
    ## 比较差异
 | 
			
		||||
    if [[ "${PRINT_DIFF}" == "true" ]]; then
 | 
			
		||||
    if [[ "${PRINT_DIFF}" == true ]]; then
 | 
			
		||||
        PrintDiff
 | 
			
		||||
    fi
 | 
			
		||||
    ## 软件源同步/更新
 | 
			
		||||
@@ -997,7 +1007,7 @@ function ChangeMirrors() {
 | 
			
		||||
        echo -e "请再次执行脚本并更换相同软件源后进行尝试,若仍然${SYNC_TXT}失败那么可能由以下原因导致"
 | 
			
		||||
        echo -e "1. 网络问题:例如连接异常、网络间歇式中断、由地区影响的网络因素等"
 | 
			
		||||
        echo -e "2. 软件源问题:例如正在维护,或者出现罕见的文件同步出错导致软件源${SYNC_TXT}命令执行后返回错误状态,请前往镜像站对应路径验证"
 | 
			
		||||
        echo -e "\n软件源地址:"${WEB_PROTOCOL}://${SOURCE}/${SOURCE_BRANCH}"\n"
 | 
			
		||||
        echo -e "\n软件源地址:${WEB_PROTOCOL}://${SOURCE}/${SOURCE_BRANCH}\n"
 | 
			
		||||
        exit 1
 | 
			
		||||
    fi
 | 
			
		||||
}
 | 
			
		||||
@@ -1035,8 +1045,9 @@ function UpdateSoftware() {
 | 
			
		||||
        echo -e "\n$COMPLETE 清理完毕"
 | 
			
		||||
    }
 | 
			
		||||
    function MainInteraction() {
 | 
			
		||||
        local CHOICE=$(echo -e "\n${BOLD}└─ 是否跳过更新软件包? [Y/n] ${PLAIN}")
 | 
			
		||||
        read -p "${CHOICE}" INPUT
 | 
			
		||||
        local CHOICE
 | 
			
		||||
        CHOICE=$(echo -e "\n${BOLD}└─ 是否跳过更新软件包? [Y/n] ${PLAIN}")
 | 
			
		||||
        read -rp "${CHOICE}" INPUT
 | 
			
		||||
        [[ -z "${INPUT}" ]] && INPUT=Y
 | 
			
		||||
        case "${INPUT}" in
 | 
			
		||||
        [Yy] | [Yy][Ee][Ss]) ;;
 | 
			
		||||
@@ -1054,8 +1065,9 @@ function UpdateSoftware() {
 | 
			
		||||
        esac
 | 
			
		||||
    }
 | 
			
		||||
    function CleanCacheInteraction() {
 | 
			
		||||
        local CHOICE=$(echo -e "\n${BOLD}└─ 是否清理已下载的软件包缓存? [Y/n] ${PLAIN}")
 | 
			
		||||
        read -p "${CHOICE}" INPUT
 | 
			
		||||
        local CHOICE
 | 
			
		||||
        CHOICE=$(echo -e "\n${BOLD}└─ 是否清理已下载的软件包缓存? [Y/n] ${PLAIN}")
 | 
			
		||||
        read -rp "${CHOICE}" INPUT
 | 
			
		||||
        [[ -z "${INPUT}" ]] && INPUT=Y
 | 
			
		||||
        case "${INPUT}" in
 | 
			
		||||
        [Yy] | [Yy][Ee][Ss])
 | 
			
		||||
@@ -1182,13 +1194,13 @@ function RedHatMirrors() {
 | 
			
		||||
    ## 安装/更换 EPEL (Extra Packages for Enterprise Linux) 附加软件包软件源
 | 
			
		||||
    function EPELMirrors() {
 | 
			
		||||
        ## 安装 EPEL 软件包
 | 
			
		||||
        if [ ${VERIFICATION_EPEL} -ne 0 ]; then
 | 
			
		||||
        if [ "${VERIFICATION_EPEL}" -ne 0 ]; then
 | 
			
		||||
            echo -e "\n${WORKING} 安装 epel-release 软件包...\n"
 | 
			
		||||
            yum install -y https://mirrors.cloud.tencent.com/epel/epel-release-latest-${SYSTEM_VERSION_NUMBER:0:1}.noarch.rpm
 | 
			
		||||
        fi
 | 
			
		||||
        ## 删除原有 repo 源文件
 | 
			
		||||
        [ ${VERIFICATION_EPELFILES} -eq 0 ] && rm -rf $Dir_YumRepos/epel*
 | 
			
		||||
        [ ${VERIFICATION_EPELBACKUPFILES} -eq 0 ] && rm -rf $Dir_YumReposBackup/epel*
 | 
			
		||||
        [ "${VERIFICATION_EPELFILES}" -eq 0 ] && rm -rf $Dir_YumRepos/epel*
 | 
			
		||||
        [ "${VERIFICATION_EPELBACKUPFILES}" -eq 0 ] && rm -rf $Dir_YumReposBackup/epel*
 | 
			
		||||
        ## 生成 repo 源文件
 | 
			
		||||
        GenRepoFiles_EPEL
 | 
			
		||||
        if [[ "${USE_OFFICIAL_SOURCE}" == "true" ]]; then
 | 
			
		||||
@@ -1225,24 +1237,24 @@ function RedHatMirrors() {
 | 
			
		||||
    "${SYSTEM_RHEL}")
 | 
			
		||||
        case ${SYSTEM_VERSION_NUMBER:0:1} in
 | 
			
		||||
        9)
 | 
			
		||||
            GenRepoFiles_RockyLinux ${SYSTEM_VERSION_NUMBER:0:1}
 | 
			
		||||
            GenRepoFiles_RockyLinux "${SYSTEM_VERSION_NUMBER:0:1}"
 | 
			
		||||
            ;;
 | 
			
		||||
        *)
 | 
			
		||||
            GenRepoFiles_CentOS ${SYSTEM_VERSION_NUMBER:0:1}
 | 
			
		||||
            GenRepoFiles_CentOS "${SYSTEM_VERSION_NUMBER:0:1}"
 | 
			
		||||
            ;;
 | 
			
		||||
        esac
 | 
			
		||||
        ;;
 | 
			
		||||
    "${SYSTEM_CENTOS}")
 | 
			
		||||
        GenRepoFiles_CentOS ${SYSTEM_VERSION_NUMBER:0:1}
 | 
			
		||||
        GenRepoFiles_CentOS "${SYSTEM_VERSION_NUMBER:0:1}"
 | 
			
		||||
        ;;
 | 
			
		||||
    "${SYSTEM_CENTOS_STREAM}")
 | 
			
		||||
        GenRepoFiles_CentOSStream ${SYSTEM_VERSION_NUMBER:0:1}
 | 
			
		||||
        GenRepoFiles_CentOSStream "${SYSTEM_VERSION_NUMBER:0:1}"
 | 
			
		||||
        ;;
 | 
			
		||||
    "${SYSTEM_ROCKY}")
 | 
			
		||||
        GenRepoFiles_RockyLinux ${SYSTEM_VERSION_NUMBER:0:1}
 | 
			
		||||
        GenRepoFiles_RockyLinux "${SYSTEM_VERSION_NUMBER:0:1}"
 | 
			
		||||
        ;;
 | 
			
		||||
    "${SYSTEM_ALMALINUX}")
 | 
			
		||||
        GenRepoFiles_AlmaLinux ${SYSTEM_VERSION_NUMBER:0:1}
 | 
			
		||||
        GenRepoFiles_AlmaLinux "${SYSTEM_VERSION_NUMBER:0:1}"
 | 
			
		||||
        ;;
 | 
			
		||||
    "${SYSTEM_FEDORA}")
 | 
			
		||||
        GenRepoFiles_Fedora
 | 
			
		||||
@@ -1276,7 +1288,7 @@ function RedHatMirrors() {
 | 
			
		||||
            sed -i 's|^mirrorlist=|#mirrorlist=|g' CentOS-*
 | 
			
		||||
            case ${SYSTEM_VERSION_NUMBER:0:1} in
 | 
			
		||||
            8)
 | 
			
		||||
                sed -i 's|mirror.centos.org/$contentdir|mirror.centos.org/centos-vault|g' CentOS-*
 | 
			
		||||
                sed -i "s|mirror.centos.org/\$contentdir|mirror.centos.org/centos-vault|g" CentOS-*
 | 
			
		||||
                sed -i "s/\$releasever/8.5.2111/g" CentOS-*
 | 
			
		||||
                # 单独处理 CentOS-Linux-Sources.repo
 | 
			
		||||
                sed -i "s|vault.centos.org/\$contentdir|${SOURCE_VAULT:-"${SOURCE}"}/${SOURCE_BRANCH_VAULT:-"centos-vault"}|g" CentOS-Linux-Sources.repo
 | 
			
		||||
@@ -1299,7 +1311,7 @@ function RedHatMirrors() {
 | 
			
		||||
        8)
 | 
			
		||||
            ## CentOS 8 操作系统版本结束了生命周期(EOL),Linux 社区已不再维护该操作系统版本,最终版本为 8.5.2011
 | 
			
		||||
            # 原 centos 镜像中的 CentOS 8 相关内容已被官方移动,从 2022-02 开始切换至 centos-vault 源
 | 
			
		||||
            sed -i 's|mirror.centos.org/$contentdir|mirror.centos.org/centos-vault|g' CentOS-*
 | 
			
		||||
            sed -i "s|mirror.centos.org/\$contentdir|mirror.centos.org/centos-vault|g" CentOS-*
 | 
			
		||||
            sed -i "s/\$releasever/8.5.2111/g" CentOS-*
 | 
			
		||||
            # 单独处理 CentOS-Linux-Sources.repo
 | 
			
		||||
            sed -i "s|vault.centos.org/\$contentdir|${SOURCE_VAULT:-"${SOURCE}"}/${SOURCE_BRANCH_VAULT:-"centos-vault"}|g" CentOS-Linux-Sources.repo
 | 
			
		||||
@@ -1405,7 +1417,7 @@ function RedHatMirrors() {
 | 
			
		||||
 | 
			
		||||
## 更换基于 OpenCloudOS 发行版的软件源
 | 
			
		||||
function OpenCloudOSMirrors() {
 | 
			
		||||
    GenRepoFiles_OpenCloudOS ${SYSTEM_VERSION_NUMBER:0:1}
 | 
			
		||||
    GenRepoFiles_OpenCloudOS "${SYSTEM_VERSION_NUMBER:0:1}"
 | 
			
		||||
    if [[ "${USE_OFFICIAL_SOURCE}" == "true" ]]; then
 | 
			
		||||
        return
 | 
			
		||||
    fi
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user