mirror of
				https://gitee.com/SuperManito/LinuxMirrors
				synced 2025-11-04 08:20:28 +08:00 
			
		
		
		
	优化输出内容 & 同步各系统最新版本号
This commit is contained in:
		
							
								
								
									
										147
									
								
								ChangeMirrors.sh
									
									
									
									
									
								
							
							
						
						
									
										147
									
								
								ChangeMirrors.sh
									
									
									
									
									
								
							@@ -1,33 +1,28 @@
 | 
				
			|||||||
#!/bin/bash
 | 
					#!/bin/bash
 | 
				
			||||||
## Author: SuperManito
 | 
					## Author: SuperManito
 | 
				
			||||||
## Modified: 2021-10-24
 | 
					## Modified: 2021-12-15
 | 
				
			||||||
## License: GPL-2.0
 | 
					## License: GPL-2.0
 | 
				
			||||||
## Github Repository: https://github.com/SuperManito/LinuxMirrors
 | 
					## Github Repository: https://github.com/SuperManito/LinuxMirrors
 | 
				
			||||||
## Gitee Repository: https://gitee.com/SuperManito/LinuxMirrors
 | 
					## Gitee Repository: https://gitee.com/SuperManito/LinuxMirrors
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function AuthorSignature() {
 | 
					function AuthorSignature() {
 | 
				
			||||||
    if [ ${SYSTEM_FACTIONS} = ${SYSTEM_DEBIAN} ]; then
 | 
					    echo -e "\n${GREEN} ------------ 脚本执行结束 ------------ ${PLAIN}\n"
 | 
				
			||||||
        apt-get install -y figlet toilet >/dev/null 2>&1
 | 
					    echo -e '\n\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[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[0;1;34;94m──\033[0;1;35;95m─┐\033[0m'
 | 
				
			||||||
    elif [ ${SYSTEM_FACTIONS} = ${SYSTEM_REDHAT} ]; then
 | 
					    echo -e '\033[0;1;31;91m│\033[0m   \033[0;1;32;92m__\033[0;1;36;96m__\033[0;1;34;94m_\033[0m                       \033[0;1;34;94m__\033[0m  \033[0;1;31;91m__\033[0;1;33;93m_\033[0m            \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[0m'
 | 
				
			||||||
        yum install -y figlet toilet >/dev/null 2>&1
 | 
					    echo -e '\033[0;1;33;93m│\033[0m  \033[0;1;32;92m/\033[0m \033[0;1;36;96m_\033[0;1;34;94m__\033[0;1;35;95m/_\033[0;1;31;91m_\033[0m  \033[0;1;33;93m_\033[0;1;32;92m__\033[0;1;36;96m__\033[0;1;34;94m_\033[0m  \033[0;1;35;95m_\033[0;1;31;91m__\033[0m  \033[0;1;32;92m__\033[0;1;36;96m__\033[0;1;34;94m_/\033[0m  \033[0;1;31;91m|/\033[0m  \033[0;1;32;92m/_\033[0;1;36;96m__\033[0m \033[0;1;34;94m_\033[0;1;35;95m__\033[0;1;31;91m__\033[0m  \033[0;1;32;92m(_\033[0;1;36;96m)\033[0m \033[0;1;34;94m/_\033[0;1;35;95m__\033[0;1;31;91m__\033[0m \033[0;1;33;93m│\033[0m'
 | 
				
			||||||
    fi
 | 
					    echo -e '\033[0;1;32;92m│\033[0m  \033[0;1;36;96m\\\033[0;1;34;94m__\033[0m \033[0;1;35;95m\\\033[0;1;31;91m/\033[0m \033[0;1;33;93m/\033[0m \033[0;1;32;92m/\033[0m \033[0;1;36;96m/\033[0m \033[0;1;34;94m__\033[0m \033[0;1;35;95m\\\033[0;1;31;91m/\033[0m \033[0;1;33;93m_\033[0m \033[0;1;32;92m\/\033[0m \033[0;1;36;96m_\033[0;1;34;94m__\033[0;1;35;95m/\033[0m \033[0;1;31;91m/|\033[0;1;33;93m_/\033[0m \033[0;1;32;92m/\033[0m \033[0;1;36;96m_\033[0;1;34;94m_\033[0m \033[0;1;35;95m`/\033[0m \033[0;1;31;91m_\033[0;1;33;93m_\033[0m \033[0;1;32;92m\/\033[0m \033[0;1;36;96m/\033[0m \033[0;1;34;94m_\033[0;1;35;95m_/\033[0m \033[0;1;31;91m_\033[0;1;33;93m_\033[0m \033[0;1;32;92m\│\033[0m'
 | 
				
			||||||
    if [ -x /usr/bin/toilet ]; then
 | 
					    echo -e '\033[0;1;36;96m│\033[0m \033[0;1;34;94m__\033[0;1;35;95m_/\033[0m \033[0;1;31;91m/\033[0m \033[0;1;33;93m/\033[0;1;32;92m_/\033[0m \033[0;1;36;96m/\033[0m \033[0;1;34;94m/\033[0;1;35;95m_/\033[0m \033[0;1;31;91m/\033[0m  \033[0;1;32;92m__\033[0;1;36;96m/\033[0m \033[0;1;34;94m/\033[0m  \033[0;1;35;95m/\033[0m \033[0;1;31;91m/\033[0m  \033[0;1;32;92m/\033[0m \033[0;1;36;96m/\033[0m \033[0;1;34;94m/_\033[0;1;35;95m/\033[0m \033[0;1;31;91m/\033[0m \033[0;1;33;93m/\033[0m \033[0;1;32;92m/\033[0m \033[0;1;36;96m/\033[0m \033[0;1;34;94m/\033[0m \033[0;1;35;95m/_\033[0;1;31;91m/\033[0m \033[0;1;33;93m/_\033[0;1;32;92m/\033[0m \033[0;1;36;96m/│\033[0m'
 | 
				
			||||||
        echo -e "\n$(toilet -f slant -F border --gay SuperManito)\n"
 | 
					    echo -e '\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[0m \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[0m  \033[0;1;31;91m/_\033[0;1;33;93m/\033[0m  \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[0m \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 \033[0;1;34;94m│\033[0m'
 | 
				
			||||||
    else
 | 
					    echo -e '\033[0;1;35;95m│\033[0m          \033[0;1;34;94m/\033[0;1;35;95m_/\033[0m                                               \033[0;1;35;95m│\033[0m'
 | 
				
			||||||
        echo -e '\n\033[35m    _____                       __  ___            _ __       \033[0m'
 | 
					    echo -e '\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[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[0;1;34;94m──\033[0;1;35;95m──\033[0;1;31;91m─┘\033[0m\n'
 | 
				
			||||||
        echo -e '\033[31m   / ___/__  ______  ___  _____/  |/  /___ _____  (_) /_____  \033[0m'
 | 
					
 | 
				
			||||||
        echo -e '\033[33m   \__ \/ / / / __ \/ _ \/ ___/ /|_/ / __ `/ __ \/ / __/ __ \ \033[0m'
 | 
					    echo -e " \033[1;34mGithub\033[0m - https://github.com/SuperManito/LinuxMirrors"
 | 
				
			||||||
        echo -e '\033[32m  ___/ / /_/ / /_/ /  __/ /  / /  / / /_/ / / / / / /_/ /_/ / \033[0m'
 | 
					    echo -e " \033[1;34mGitee\033[0m  - https://gitee.com/SuperManito/LinuxMirrors\n"
 | 
				
			||||||
        echo -e '\033[36m /____/\__,_/ .___/\___/_/  /_/  /_/\__,_/_/ /_/_/\__/\____/  \033[0m'
 | 
					 | 
				
			||||||
        echo -e '\033[34m           /_/                                                \033[0m\n'
 | 
					 | 
				
			||||||
    fi
 | 
					 | 
				
			||||||
    echo -e " Github: https://github.com/SuperManito/LinuxMirrors"
 | 
					 | 
				
			||||||
    echo -e " Gitee:  https://gitee.com/SuperManito/LinuxMirrors\n"
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## 定义系统判定变量
 | 
					## 定义系统判定变量
 | 
				
			||||||
DebianRelease="lsb_release"
 | 
					DebianRelease="lsb_release"
 | 
				
			||||||
Arch=$(uname -m)
 | 
					ARCH=$(uname -m)
 | 
				
			||||||
SYSTEM_DEBIAN="Debian"
 | 
					SYSTEM_DEBIAN="Debian"
 | 
				
			||||||
SYSTEM_UBUNTU="Ubuntu"
 | 
					SYSTEM_UBUNTU="Ubuntu"
 | 
				
			||||||
SYSTEM_KALI="Kali"
 | 
					SYSTEM_KALI="Kali"
 | 
				
			||||||
@@ -48,6 +43,18 @@ RedHatReposDir=/etc/yum.repos.d
 | 
				
			|||||||
RedHatReposDirBackup=/etc/yum.repos.d.bak
 | 
					RedHatReposDirBackup=/etc/yum.repos.d.bak
 | 
				
			||||||
SelinuxConfig=/etc/selinux/config
 | 
					SelinuxConfig=/etc/selinux/config
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					RED='\033[31m'
 | 
				
			||||||
 | 
					GREEN='\033[32m'
 | 
				
			||||||
 | 
					YELLOW='\033[33m'
 | 
				
			||||||
 | 
					BLUE='\033[34m'
 | 
				
			||||||
 | 
					PLAIN='\033[0m'
 | 
				
			||||||
 | 
					BOLD='\033[1m'
 | 
				
			||||||
 | 
					SUCCESS='[\033[32mOK\033[0m]'
 | 
				
			||||||
 | 
					COMPLETE='[\033[32mDone\033[0m]'
 | 
				
			||||||
 | 
					WARN='[\033[33mWARN\033[0m]'
 | 
				
			||||||
 | 
					ERROR='[\033[31mERROR\033[0m]'
 | 
				
			||||||
 | 
					WORKING='[\033[34m*\033[0m]'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## 组合函数
 | 
					## 组合函数
 | 
				
			||||||
function Combin_Function() {
 | 
					function Combin_Function() {
 | 
				
			||||||
    PermissionJudgment
 | 
					    PermissionJudgment
 | 
				
			||||||
@@ -68,13 +75,13 @@ function EnvJudgment() {
 | 
				
			|||||||
    elif [ -f $DebianVersion ]; then
 | 
					    elif [ -f $DebianVersion ]; then
 | 
				
			||||||
        SYSTEM_FACTIONS=${SYSTEM_DEBIAN}
 | 
					        SYSTEM_FACTIONS=${SYSTEM_DEBIAN}
 | 
				
			||||||
    else
 | 
					    else
 | 
				
			||||||
        echo -e '\n\033[31m -------- 无法判断当前运行环境,请先确认脚本是否已适配当前系统! ------------ \033[0m\n'
 | 
					        echo -e "\n${RED} ------------ 无法判断当前运行环境,请先确认脚本是否已适配当前系统! ------------ ${PLAIN}\n"
 | 
				
			||||||
        exit
 | 
					        exit
 | 
				
			||||||
    fi
 | 
					    fi
 | 
				
			||||||
    ## 定义系统名称
 | 
					    ## 定义系统名称
 | 
				
			||||||
    SYSTEM_NAME=$(cat $LinuxRelease | grep -E "^NAME" | awk -F '\"' '{print$2}')
 | 
					    SYSTEM_NAME=$(cat $LinuxRelease | grep -E "^NAME=" | awk -F '=' '{print$2}' | sed "s/[\'\"]//g")
 | 
				
			||||||
    ## 定义系统版本号
 | 
					    ## 定义系统版本号
 | 
				
			||||||
    SYSTEM_VERSION_NUMBER=$(cat $LinuxRelease | grep -E "VERSION_ID" | awk -F '\"' '{print$2}')
 | 
					    SYSTEM_VERSION_NUMBER=$(cat $LinuxRelease | grep -E "VERSION_ID=" | awk -F '=' '{print$2}' | sed "s/[\'\"]//g")
 | 
				
			||||||
    ## 判定系统名称、版本、版本号
 | 
					    ## 判定系统名称、版本、版本号
 | 
				
			||||||
    case ${SYSTEM_FACTIONS} in
 | 
					    case ${SYSTEM_FACTIONS} in
 | 
				
			||||||
    Debian)
 | 
					    Debian)
 | 
				
			||||||
@@ -83,7 +90,7 @@ function EnvJudgment() {
 | 
				
			|||||||
            if [ $? -eq 0 ]; then
 | 
					            if [ $? -eq 0 ]; then
 | 
				
			||||||
                clear
 | 
					                clear
 | 
				
			||||||
            else
 | 
					            else
 | 
				
			||||||
                echo -e '\n\033[31m -------- lsb-release 软件包安装失败 ------------ \033[0m'
 | 
					                echo -e "\n${ERROR} lsb-release 软件包安装失败"
 | 
				
			||||||
                echo -e "\n本脚本需要通过 lsb_release 指令判断系统类型,当前可能为精简安装的系统一般系统自带,请自行安装后重新执行脚本!\n"
 | 
					                echo -e "\n本脚本需要通过 lsb_release 指令判断系统类型,当前可能为精简安装的系统一般系统自带,请自行安装后重新执行脚本!\n"
 | 
				
			||||||
                exit
 | 
					                exit
 | 
				
			||||||
            fi
 | 
					            fi
 | 
				
			||||||
@@ -101,29 +108,29 @@ function EnvJudgment() {
 | 
				
			|||||||
        ;;
 | 
					        ;;
 | 
				
			||||||
    esac
 | 
					    esac
 | 
				
			||||||
    ## 判定系统处理器架构
 | 
					    ## 判定系统处理器架构
 | 
				
			||||||
    case $Arch in
 | 
					    case ${ARCH} in
 | 
				
			||||||
    x86_64)
 | 
					    x86_64)
 | 
				
			||||||
        SYSTEM_ARCH=x86_64
 | 
					        SYSTEM_ARCH="x86_64"
 | 
				
			||||||
        ;;
 | 
					        ;;
 | 
				
			||||||
    aarch64)
 | 
					    aarch64)
 | 
				
			||||||
        SYSTEM_ARCH=ARM64
 | 
					        SYSTEM_ARCH="ARM64"
 | 
				
			||||||
        ;;
 | 
					        ;;
 | 
				
			||||||
    armv7l)
 | 
					    armv7l)
 | 
				
			||||||
        SYSTEM_ARCH=ARMv7
 | 
					        SYSTEM_ARCH="ARMv7"
 | 
				
			||||||
        ;;
 | 
					        ;;
 | 
				
			||||||
    armv6l)
 | 
					    armv6l)
 | 
				
			||||||
        SYSTEM_ARCH=ARMv6
 | 
					        SYSTEM_ARCH="ARMv6"
 | 
				
			||||||
        ;;
 | 
					        ;;
 | 
				
			||||||
    i686)
 | 
					    i686)
 | 
				
			||||||
        SYSTEM_ARCH=x86_32
 | 
					        SYSTEM_ARCH="x86_32"
 | 
				
			||||||
        ;;
 | 
					        ;;
 | 
				
			||||||
    *)
 | 
					    *)
 | 
				
			||||||
        SYSTEM_ARCH=$Arch
 | 
					        SYSTEM_ARCH=${ARCH}
 | 
				
			||||||
        ;;
 | 
					        ;;
 | 
				
			||||||
    esac
 | 
					    esac
 | 
				
			||||||
    ## 定义软件源分支名称
 | 
					    ## 定义软件源分支名称
 | 
				
			||||||
    if [ ${SYSTEM_JUDGMENT} = ${SYSTEM_UBUNTU} ]; then
 | 
					    if [ ${SYSTEM_JUDGMENT} = ${SYSTEM_UBUNTU} ]; then
 | 
				
			||||||
        if [ ${Arch} = "x86_64" ] || [ ${Arch} = "*i?86*" ]; then
 | 
					        if [ ${ARCH} = "x86_64" ] || [ ${ARCH} = "*i?86*" ]; then
 | 
				
			||||||
            SOURCE_BRANCH=${SYSTEM_JUDGMENT,,}
 | 
					            SOURCE_BRANCH=${SYSTEM_JUDGMENT,,}
 | 
				
			||||||
        else
 | 
					        else
 | 
				
			||||||
            SOURCE_BRANCH=ubuntu-ports
 | 
					            SOURCE_BRANCH=ubuntu-ports
 | 
				
			||||||
@@ -148,7 +155,7 @@ function EnvJudgment() {
 | 
				
			|||||||
function PermissionJudgment() {
 | 
					function PermissionJudgment() {
 | 
				
			||||||
    ## 权限判定:
 | 
					    ## 权限判定:
 | 
				
			||||||
    if [ $UID -ne 0 ]; then
 | 
					    if [ $UID -ne 0 ]; then
 | 
				
			||||||
        echo -e '\033[31m -------- Permission no enough, please use user ROOT! ------------ \033[0m'
 | 
					        echo -e "\n${ERROR} Permission no enough, please use user ROOT! \n"
 | 
				
			||||||
        exit
 | 
					        exit
 | 
				
			||||||
    fi
 | 
					    fi
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -157,7 +164,7 @@ function PermissionJudgment() {
 | 
				
			|||||||
function TurnOffFirewall() {
 | 
					function TurnOffFirewall() {
 | 
				
			||||||
    systemctl status firewalld | grep running -q
 | 
					    systemctl status firewalld | grep running -q
 | 
				
			||||||
    if [ $? -eq 0 ]; then
 | 
					    if [ $? -eq 0 ]; then
 | 
				
			||||||
        CHOICE_C=$(echo -e '\n\033[1m└ 是否关闭防火墙和 SELINUX [ Y/n ]:\033[0m')
 | 
					        CHOICE_C=$(echo -e "\n${BOLD}└ 是否关闭防火墙和 SELINUX [ Y/n ]:${PLAIN}")
 | 
				
			||||||
        read -p "${CHOICE_C}" INPUT
 | 
					        read -p "${CHOICE_C}" INPUT
 | 
				
			||||||
        [ -z ${INPUT} ] && INPUT=Y
 | 
					        [ -z ${INPUT} ] && INPUT=Y
 | 
				
			||||||
        case $INPUT in
 | 
					        case $INPUT in
 | 
				
			||||||
@@ -167,7 +174,7 @@ function TurnOffFirewall() {
 | 
				
			|||||||
            ;;
 | 
					            ;;
 | 
				
			||||||
        [Nn] | [Nn][Oo]) ;;
 | 
					        [Nn] | [Nn][Oo]) ;;
 | 
				
			||||||
        *)
 | 
					        *)
 | 
				
			||||||
            echo -e '\n\033[33m------------ 输入错误,默认不关闭 ------------\033[0m'
 | 
					            echo -e "\n${WARN} 输入错误,默认不关闭!"
 | 
				
			||||||
            ;;
 | 
					            ;;
 | 
				
			||||||
        esac
 | 
					        esac
 | 
				
			||||||
    fi
 | 
					    fi
 | 
				
			||||||
@@ -195,24 +202,21 @@ function BackupMirrors() {
 | 
				
			|||||||
        ## /etc/apt/sources.list
 | 
					        ## /etc/apt/sources.list
 | 
				
			||||||
        if [ -s $DebianSourceList ]; then
 | 
					        if [ -s $DebianSourceList ]; then
 | 
				
			||||||
            if [ -s $DebianSourceListBackup ]; then
 | 
					            if [ -s $DebianSourceListBackup ]; then
 | 
				
			||||||
                CHOICE_BACKUP1=$(echo -e "\n\033[1m└ 检测到系统存在已备份的 list 源文件,是否覆盖备份 [ Y/n ]:\033[0m")
 | 
					                CHOICE_BACKUP1=$(echo -e "\n${BOLD}└ 检测到系统存在已备份的 list 源文件,是否覆盖备份 [ Y/n ]:${PLAIN}")
 | 
				
			||||||
                read -p "${CHOICE_BACKUP1}" INPUT
 | 
					                read -p "${CHOICE_BACKUP1}" INPUT
 | 
				
			||||||
                [ -z ${INPUT} ] && INPUT=Y
 | 
					                [ -z ${INPUT} ] && INPUT=Y
 | 
				
			||||||
                case $INPUT in
 | 
					                case $INPUT in
 | 
				
			||||||
                [Yy] | [Yy][Ee][Ss])
 | 
					                [Yy] | [Yy][Ee][Ss])
 | 
				
			||||||
                    echo -e ''
 | 
					 | 
				
			||||||
                    cp -rf $DebianSourceList $DebianSourceListBackup >/dev/null 2>&1
 | 
					                    cp -rf $DebianSourceList $DebianSourceListBackup >/dev/null 2>&1
 | 
				
			||||||
                    ;;
 | 
					                    ;;
 | 
				
			||||||
                [Nn] | [Nn][Oo])
 | 
					                [Nn] | [Nn][Oo]) ;;
 | 
				
			||||||
                    echo -e ''
 | 
					 | 
				
			||||||
                    ;;
 | 
					 | 
				
			||||||
                *)
 | 
					                *)
 | 
				
			||||||
                    echo -e '\n\033[33m------------ 输入错误,默认不覆盖 ------------\033[0m\n'
 | 
					                    echo -e "\n${WARN} 输入错误,默认不覆盖!\n"
 | 
				
			||||||
                    ;;
 | 
					                    ;;
 | 
				
			||||||
                esac
 | 
					                esac
 | 
				
			||||||
            else
 | 
					            else
 | 
				
			||||||
                cp -rf $DebianSourceList $DebianSourceListBackup >/dev/null 2>&1
 | 
					                cp -rf $DebianSourceList $DebianSourceListBackup >/dev/null 2>&1
 | 
				
			||||||
                echo -e "\n\033[32m------------ 已备份原有 list 源文件至 $DebianSourceListBackup ------------\033[0m\n"
 | 
					                echo -e "\n${COMPLETE} 已备份原有 list 源文件至 $DebianSourceListBackup\n"
 | 
				
			||||||
                sleep 1s
 | 
					                sleep 1s
 | 
				
			||||||
            fi
 | 
					            fi
 | 
				
			||||||
        else
 | 
					        else
 | 
				
			||||||
@@ -223,24 +227,22 @@ function BackupMirrors() {
 | 
				
			|||||||
        ## /etc/apt/sources.list.d
 | 
					        ## /etc/apt/sources.list.d
 | 
				
			||||||
        if [ -d $DebianExtendListDir ] && [ ${VERIFICATION_FILES} -eq 0 ]; then
 | 
					        if [ -d $DebianExtendListDir ] && [ ${VERIFICATION_FILES} -eq 0 ]; then
 | 
				
			||||||
            if [ -d $DebianExtendListDirBackup ] && [ ${VERIFICATION_BACKUPFILES} -eq 0 ]; then
 | 
					            if [ -d $DebianExtendListDirBackup ] && [ ${VERIFICATION_BACKUPFILES} -eq 0 ]; then
 | 
				
			||||||
                CHOICE_BACKUP2=$(echo -e "\n\033[1m└ 检测到系统存在已备份的 list 第三方源文件,是否覆盖备份 [ Y/n ]:\033[0m")
 | 
					                CHOICE_BACKUP2=$(echo -e "\n${BOLD}└ 检测到系统存在已备份的 list 第三方源文件,是否覆盖备份 [ Y/n ]:${PLAIN}")
 | 
				
			||||||
                read -p "${CHOICE_BACKUP2}" INPUT
 | 
					                read -p "${CHOICE_BACKUP2}" INPUT
 | 
				
			||||||
                [ -z ${INPUT} ] && INPUT=Y
 | 
					                [ -z ${INPUT} ] && INPUT=Y
 | 
				
			||||||
                case $INPUT in
 | 
					                case $INPUT in
 | 
				
			||||||
                [Yy] | [Yy][Ee][Ss])
 | 
					                [Yy] | [Yy][Ee][Ss])
 | 
				
			||||||
                    cp -rf $DebianExtendListDir/* $DebianExtendListDirBackup >/dev/null 2>&1
 | 
					                    cp -rf $DebianExtendListDir/* $DebianExtendListDirBackup >/dev/null 2>&1
 | 
				
			||||||
                    ;;
 | 
					                    ;;
 | 
				
			||||||
                [Nn] | [Nn][Oo])
 | 
					                [Nn] | [Nn][Oo]) ;;
 | 
				
			||||||
                    echo ''
 | 
					 | 
				
			||||||
                    ;;
 | 
					 | 
				
			||||||
                *)
 | 
					                *)
 | 
				
			||||||
                    echo -e '\n\033[33m------------ 输入错误,默认不覆盖 ------------\033[0m\n'
 | 
					                    echo -e "\n${WARN} 输入错误,默认不覆盖!\n"
 | 
				
			||||||
                    ;;
 | 
					                    ;;
 | 
				
			||||||
                esac
 | 
					                esac
 | 
				
			||||||
            else
 | 
					            else
 | 
				
			||||||
                [ -d $DebianExtendListDirBackup ] || mkdir -p $DebianExtendListDirBackup
 | 
					                [ -d $DebianExtendListDirBackup ] || mkdir -p $DebianExtendListDirBackup
 | 
				
			||||||
                cp -rf $DebianExtendListDir/* $DebianExtendListDirBackup >/dev/null 2>&1
 | 
					                cp -rf $DebianExtendListDir/* $DebianExtendListDirBackup >/dev/null 2>&1
 | 
				
			||||||
                echo -e "\033[32m------------ 已备份原有 list 第三方源文件至 $DebianExtendListDirBackup 目录 ------------\033[0m\n"
 | 
					                echo -e "${COMPLETE} 已备份原有 list 第三方源文件至 $DebianExtendListDirBackup 目录\n"
 | 
				
			||||||
                sleep 1s
 | 
					                sleep 1s
 | 
				
			||||||
            fi
 | 
					            fi
 | 
				
			||||||
        fi
 | 
					        fi
 | 
				
			||||||
@@ -248,23 +250,22 @@ function BackupMirrors() {
 | 
				
			|||||||
        ## /etc/yum.repos.d
 | 
					        ## /etc/yum.repos.d
 | 
				
			||||||
        if [ ${VERIFICATION_FILES} -eq 0 ]; then
 | 
					        if [ ${VERIFICATION_FILES} -eq 0 ]; then
 | 
				
			||||||
            if [ -d $RedHatReposDirBackup ] && [ ${VERIFICATION_BACKUPFILES} -eq 0 ]; then
 | 
					            if [ -d $RedHatReposDirBackup ] && [ ${VERIFICATION_BACKUPFILES} -eq 0 ]; then
 | 
				
			||||||
                CHOICE_BACKUP3=$(echo -e "\n\033[1m└ 检测到系统存在已备份的 repo 源文件,是否覆盖备份 [ Y/n ]:\033[0m")
 | 
					                CHOICE_BACKUP3=$(echo -e "\n${BOLD}└ 检测到系统存在已备份的 repo 源文件,是否覆盖备份 [ Y/n ]:${PLAIN}")
 | 
				
			||||||
                read -p "${CHOICE_BACKUP3}" INPUT
 | 
					                read -p "${CHOICE_BACKUP3}" INPUT
 | 
				
			||||||
                [ -z ${INPUT} ] && INPUT=Y
 | 
					                [ -z ${INPUT} ] && INPUT=Y
 | 
				
			||||||
                case $INPUT in
 | 
					                case $INPUT in
 | 
				
			||||||
                [Yy] | [Yy][Ee][Ss])
 | 
					                [Yy] | [Yy][Ee][Ss])
 | 
				
			||||||
                    cp -rf $RedHatReposDir/* $RedHatReposDirBackup >/dev/null 2>&1
 | 
					                    cp -rf $RedHatReposDir/* $RedHatReposDirBackup >/dev/null 2>&1
 | 
				
			||||||
                    echo -e ''
 | 
					 | 
				
			||||||
                    ;;
 | 
					                    ;;
 | 
				
			||||||
                [Nn] | [Nn][Oo]) ;;
 | 
					                [Nn] | [Nn][Oo]) ;;
 | 
				
			||||||
                *)
 | 
					                *)
 | 
				
			||||||
                    echo -e '\n\033[33m------------ 输入错误,默认不覆盖 ------------\033[0m\n'
 | 
					                    echo -e "\n${WARN} 输入错误,默认不覆盖!\n"
 | 
				
			||||||
                    ;;
 | 
					                    ;;
 | 
				
			||||||
                esac
 | 
					                esac
 | 
				
			||||||
            else
 | 
					            else
 | 
				
			||||||
                [ -d $RedHatReposDirBackup ] || mkdir -p $RedHatReposDirBackup
 | 
					                [ -d $RedHatReposDirBackup ] || mkdir -p $RedHatReposDirBackup
 | 
				
			||||||
                cp -rf $RedHatReposDir/* $RedHatReposDirBackup >/dev/null 2>&1
 | 
					                cp -rf $RedHatReposDir/* $RedHatReposDirBackup >/dev/null 2>&1
 | 
				
			||||||
                echo -e "\n\033[32m------------ 已备份原有 repo 源文件至 $RedHatReposDirBackup 目录 ------------\033[0m\n"
 | 
					                echo -e "\n${COMPLETE} 已备份原有 repo 源文件至 $RedHatReposDirBackup 目录"
 | 
				
			||||||
                sleep 1s
 | 
					                sleep 1s
 | 
				
			||||||
            fi
 | 
					            fi
 | 
				
			||||||
        else
 | 
					        else
 | 
				
			||||||
@@ -296,7 +297,7 @@ function ChangeMirrors() {
 | 
				
			|||||||
        RedHatMirrors
 | 
					        RedHatMirrors
 | 
				
			||||||
        yum clean all >/dev/null 2>&1
 | 
					        yum clean all >/dev/null 2>&1
 | 
				
			||||||
    fi
 | 
					    fi
 | 
				
			||||||
    echo -e "\033[32m------------ 开始${SYNC_TXT}软件源 ------------\033[0m\n"
 | 
					    echo -e "\n${WORKING} 开始${SYNC_TXT}软件源...\n"
 | 
				
			||||||
    case ${SYSTEM_FACTIONS} in
 | 
					    case ${SYSTEM_FACTIONS} in
 | 
				
			||||||
    Debian)
 | 
					    Debian)
 | 
				
			||||||
        apt-get update
 | 
					        apt-get update
 | 
				
			||||||
@@ -307,16 +308,20 @@ function ChangeMirrors() {
 | 
				
			|||||||
    esac
 | 
					    esac
 | 
				
			||||||
    VERIFICATION_SOURCESYNC=$?
 | 
					    VERIFICATION_SOURCESYNC=$?
 | 
				
			||||||
    if [ ${VERIFICATION_SOURCESYNC} -eq 0 ]; then
 | 
					    if [ ${VERIFICATION_SOURCESYNC} -eq 0 ]; then
 | 
				
			||||||
        echo -e "\n\033[32m------------ ${SYNC_TXT}软件源结束 ------------\033[0m"
 | 
					        echo -e "\n${SUCCESS} 软件源更换完毕"
 | 
				
			||||||
    else
 | 
					    else
 | 
				
			||||||
        echo -e "\n\033[31m------------ 软件源${SYNC_TXT}失败,请重新执行脚本 ------------\033[0m\n\n如果仍然${SYNC_TXT}失败那么可能由以下原因导致\n1. 网络问题:例如网络异常、网络间歇式中断、由地区影响的网络因素等\n2. 软件源问题:所选镜像站正在维护或者不支持你的操作系统\n"
 | 
					        echo -e "\n${ERROR} 软件源${SYNC_TXT}失败\n"
 | 
				
			||||||
 | 
					        echo -e "请再次执行脚本并更换软件源后进行尝试,如果仍然${SYNC_TXT}失败那么可能由以下原因导致"
 | 
				
			||||||
 | 
					        echo -e "1. 网络问题:例如网络异常、网络间歇式中断、由地区影响的网络因素等"
 | 
				
			||||||
 | 
					        echo -e "2. 软件源问题:所选镜像站正在维护,或者出现罕见的少数文件同步出错导致软件源${SYNC_TXT}命令执行后返回错误状态"
 | 
				
			||||||
 | 
					        echo ''
 | 
				
			||||||
        exit
 | 
					        exit
 | 
				
			||||||
    fi
 | 
					    fi
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## 更新软件包
 | 
					## 更新软件包
 | 
				
			||||||
function UpgradeSoftware() {
 | 
					function UpgradeSoftware() {
 | 
				
			||||||
    CHOICE_B=$(echo -e '\n\033[1m└ 是否更新软件包 [ Y/n ]:\033[0m')
 | 
					    CHOICE_B=$(echo -e "\n${BOLD}└ 是否更新软件包 [ Y/n ]:${PLAIN}")
 | 
				
			||||||
    read -p "${CHOICE_B}" INPUT
 | 
					    read -p "${CHOICE_B}" INPUT
 | 
				
			||||||
    [ -z ${INPUT} ] && INPUT=Y
 | 
					    [ -z ${INPUT} ] && INPUT=Y
 | 
				
			||||||
    case $INPUT in
 | 
					    case $INPUT in
 | 
				
			||||||
@@ -330,7 +335,7 @@ function UpgradeSoftware() {
 | 
				
			|||||||
            yum update -y
 | 
					            yum update -y
 | 
				
			||||||
            ;;
 | 
					            ;;
 | 
				
			||||||
        esac
 | 
					        esac
 | 
				
			||||||
        CHOICE_C=$(echo -e '\n\033[1m└ 是否清理已下载的软件包缓存 [ Y/n ]:\033[0m')
 | 
					        CHOICE_C=$(echo -e "\n${BOLD}└ 是否清理已下载的软件包缓存 [ Y/n ]:${PLAIN}")
 | 
				
			||||||
        read -p "${CHOICE_C}" INPUT
 | 
					        read -p "${CHOICE_C}" INPUT
 | 
				
			||||||
        [ -z ${INPUT} ] && INPUT=Y
 | 
					        [ -z ${INPUT} ] && INPUT=Y
 | 
				
			||||||
        case $INPUT in
 | 
					        case $INPUT in
 | 
				
			||||||
@@ -343,20 +348,19 @@ function UpgradeSoftware() {
 | 
				
			|||||||
                yum clean packages -y >/dev/null 2>&1
 | 
					                yum clean packages -y >/dev/null 2>&1
 | 
				
			||||||
            fi
 | 
					            fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            echo -e '\n[OK] 清理完毕'
 | 
					            echo -e "\n${COMPLETE} 清理完毕"
 | 
				
			||||||
            ;;
 | 
					            ;;
 | 
				
			||||||
        [Nn] | [Nn][Oo]) ;;
 | 
					        [Nn] | [Nn][Oo]) ;;
 | 
				
			||||||
        *)
 | 
					        *)
 | 
				
			||||||
            echo -e '\n\033[33m------------ 输入错误,默认不清理 ------------\033[0m'
 | 
					            echo -e "\n${WARN} 输入错误,默认不清理!"
 | 
				
			||||||
            ;;
 | 
					            ;;
 | 
				
			||||||
        esac
 | 
					        esac
 | 
				
			||||||
        ;;
 | 
					        ;;
 | 
				
			||||||
    [Nn] | [Nn][Oo]) ;;
 | 
					    [Nn] | [Nn][Oo]) ;;
 | 
				
			||||||
    *)
 | 
					    *)
 | 
				
			||||||
        echo -e '\n\033[33m------------ 输入错误,默认不更新 ------------\033[0m'
 | 
					        echo -e "\n${WARN} 输入错误,默认不更新!"
 | 
				
			||||||
        ;;
 | 
					        ;;
 | 
				
			||||||
    esac
 | 
					    esac
 | 
				
			||||||
    echo -e '\n\033[32m------------ 软件源更换完毕 ------------\033[0m'
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## 更换基于 Debian 系 Linux 发行版的国内源
 | 
					## 更换基于 Debian 系 Linux 发行版的国内源
 | 
				
			||||||
@@ -443,7 +447,7 @@ function RedHatMirrors() {
 | 
				
			|||||||
function EPELMirrors() {
 | 
					function EPELMirrors() {
 | 
				
			||||||
    ## 安装 EPEL 软件包
 | 
					    ## 安装 EPEL 软件包
 | 
				
			||||||
    if [ ${VERIFICATION_EPEL} -ne 0 ]; then
 | 
					    if [ ${VERIFICATION_EPEL} -ne 0 ]; then
 | 
				
			||||||
        echo -e '\033[32m------------ 安装 epel-release 软件包 ------------\033[0m\n'
 | 
					        echo -e "\n${WORKING} 安装 epel-release 软件包...\n"
 | 
				
			||||||
        yum install -y https://mirrors.aliyun.com/epel/epel-release-latest-${CENTOS_VERSION}.noarch.rpm
 | 
					        yum install -y https://mirrors.aliyun.com/epel/epel-release-latest-${CENTOS_VERSION}.noarch.rpm
 | 
				
			||||||
    fi
 | 
					    fi
 | 
				
			||||||
    ## 删除原有 EPEL 扩展 repo 源文件
 | 
					    ## 删除原有 EPEL 扩展 repo 源文件
 | 
				
			||||||
@@ -463,7 +467,6 @@ function EPELMirrors() {
 | 
				
			|||||||
    esac
 | 
					    esac
 | 
				
			||||||
    sed -i "s|download.fedoraproject.org/pub|${SOURCE}|g" $RedHatReposDir/epel*
 | 
					    sed -i "s|download.fedoraproject.org/pub|${SOURCE}|g" $RedHatReposDir/epel*
 | 
				
			||||||
    rm -rf $RedHatReposDir/epel*rpmnew
 | 
					    rm -rf $RedHatReposDir/epel*rpmnew
 | 
				
			||||||
    echo ''
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## 选择国内源
 | 
					## 选择国内源
 | 
				
			||||||
@@ -501,11 +504,11 @@ function ChooseMirrors() {
 | 
				
			|||||||
    echo -e ''
 | 
					    echo -e ''
 | 
				
			||||||
    echo -e '#####################################################'
 | 
					    echo -e '#####################################################'
 | 
				
			||||||
    echo -e ''
 | 
					    echo -e ''
 | 
				
			||||||
    echo -e "        运行环境  \033[34m${SYSTEM_NAME} ${SYSTEM_VERSION_NUMBER} ${SYSTEM_ARCH}\033[0m"
 | 
					    echo -e "        运行环境  ${BLUE}${SYSTEM_NAME} ${SYSTEM_VERSION_NUMBER} ${SYSTEM_ARCH}${PLAIN}"
 | 
				
			||||||
    echo -e "        系统时间  \033[34m$(date "+%Y-%m-%d %H:%M:%S")\033[0m"
 | 
					    echo -e "        系统时间  ${BLUE}$(date "+%Y-%m-%d %H:%M:%S")${PLAIN}"
 | 
				
			||||||
    echo -e ''
 | 
					    echo -e ''
 | 
				
			||||||
    echo -e '#####################################################'
 | 
					    echo -e '#####################################################'
 | 
				
			||||||
    CHOICE_A=$(echo -e '\n\033[1m└ 请选择并输入你想使用的软件源 [ 1-13 ]:\033[0m')
 | 
					    CHOICE_A=$(echo -e "\n${BOLD}└ 请选择并输入你想使用的软件源 [ 1-13 ]:${PLAIN}")
 | 
				
			||||||
    read -p "${CHOICE_A}" INPUT
 | 
					    read -p "${CHOICE_A}" INPUT
 | 
				
			||||||
    case $INPUT in
 | 
					    case $INPUT in
 | 
				
			||||||
    1)
 | 
					    1)
 | 
				
			||||||
@@ -549,8 +552,8 @@ function ChooseMirrors() {
 | 
				
			|||||||
        ;;
 | 
					        ;;
 | 
				
			||||||
    *)
 | 
					    *)
 | 
				
			||||||
        SOURCE="mirrors.aliyun.com"
 | 
					        SOURCE="mirrors.aliyun.com"
 | 
				
			||||||
        echo -e '\n\033[33m------------ 输入错误,将默认使用阿里云作为国内源 ------------\033[0m'
 | 
					        echo -e "\n${WARN} 输入错误,将默认使用 ${BLUE}阿里云${PLAIN} 作为国内源!"
 | 
				
			||||||
        sleep 1s
 | 
					        sleep 2s
 | 
				
			||||||
        ;;
 | 
					        ;;
 | 
				
			||||||
    esac
 | 
					    esac
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -567,9 +570,9 @@ function ChooseMirrors() {
 | 
				
			|||||||
        VERIFICATION_EPELBACKUPFILES=$?
 | 
					        VERIFICATION_EPELBACKUPFILES=$?
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if [ ${VERIFICATION_EPEL} -eq 0 ]; then
 | 
					        if [ ${VERIFICATION_EPEL} -eq 0 ]; then
 | 
				
			||||||
            CHOICE_D=$(echo -e '\n\033[1m└ 检测到系统已安装 EPEL 扩展源,是否替换/覆盖为国内源 [ Y/n ]:\033[0m')
 | 
					            CHOICE_D=$(echo -e "\n${BOLD}└ 检测到系统已安装 EPEL 扩展源,是否替换/覆盖为国内源 [ Y/n ]:${PLAIN}")
 | 
				
			||||||
        else
 | 
					        else
 | 
				
			||||||
            CHOICE_D=$(echo -e '\n\033[1m└ 是否安装 EPEL 扩展源 [ Y/n ]:\033[0m')
 | 
					            CHOICE_D=$(echo -e "\n${BOLD}└ 是否安装 EPEL 扩展源 [ Y/n ]:${PLAIN}")
 | 
				
			||||||
        fi
 | 
					        fi
 | 
				
			||||||
        read -p "${CHOICE_D}" INPUT
 | 
					        read -p "${CHOICE_D}" INPUT
 | 
				
			||||||
        [ -z ${INPUT} ] && INPUT=Y
 | 
					        [ -z ${INPUT} ] && INPUT=Y
 | 
				
			||||||
@@ -581,14 +584,14 @@ function ChooseMirrors() {
 | 
				
			|||||||
            EPEL_INSTALL="False"
 | 
					            EPEL_INSTALL="False"
 | 
				
			||||||
            ;;
 | 
					            ;;
 | 
				
			||||||
        *)
 | 
					        *)
 | 
				
			||||||
            echo -e '\n\033[33m------------ 输入错误,默认不更换 ------------\033[0m'
 | 
					            echo -e "\n${WARN} 输入错误,默认不更换!"
 | 
				
			||||||
            EPEL_INSTALL="False"
 | 
					            EPEL_INSTALL="False"
 | 
				
			||||||
            ;;
 | 
					            ;;
 | 
				
			||||||
        esac
 | 
					        esac
 | 
				
			||||||
    fi
 | 
					    fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    ## 选择同步软件源所使用的 WEB 协议( HTTP:80 端口,HTTPS:443 端口)
 | 
					    ## 选择同步软件源所使用的 WEB 协议( HTTP:80 端口,HTTPS:443 端口)
 | 
				
			||||||
    CHOICE_E=$(echo -e "\n\033[1m└ 软件源是否使用 HTTP 协议 [ Y/n ]:\033[0m")
 | 
					    CHOICE_E=$(echo -e "\n${BOLD}└ 软件源是否使用 HTTP 协议 [ Y/n ]:${PLAIN}")
 | 
				
			||||||
    read -p "${CHOICE_E}" INPUT
 | 
					    read -p "${CHOICE_E}" INPUT
 | 
				
			||||||
    [ -z ${INPUT} ] && INPUT=Y
 | 
					    [ -z ${INPUT} ] && INPUT=Y
 | 
				
			||||||
    case $INPUT in
 | 
					    case $INPUT in
 | 
				
			||||||
@@ -599,7 +602,7 @@ function ChooseMirrors() {
 | 
				
			|||||||
        WEB_PROTOCOL="https"
 | 
					        WEB_PROTOCOL="https"
 | 
				
			||||||
        ;;
 | 
					        ;;
 | 
				
			||||||
    *)
 | 
					    *)
 | 
				
			||||||
        echo -e "\n\033[33m------------ 输入错误,默认使用 HTTPS 协议 ------------\033[0m"
 | 
					        echo -e "\n${WARN} 输入错误,默认使用 HTTPS 协议!"
 | 
				
			||||||
        WEB_PROTOCOL="https"
 | 
					        WEB_PROTOCOL="https"
 | 
				
			||||||
        ;;
 | 
					        ;;
 | 
				
			||||||
    esac
 | 
					    esac
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,33 +1,28 @@
 | 
				
			|||||||
#!/bin/bash
 | 
					#!/bin/bash
 | 
				
			||||||
## Author: SuperManito
 | 
					## Author: SuperManito
 | 
				
			||||||
## Modified: 2021-10-24
 | 
					## Modified: 2021-12-15
 | 
				
			||||||
## License: GPL-2.0
 | 
					## License: GPL-2.0
 | 
				
			||||||
## Github Repository: https://github.com/SuperManito/LinuxMirrors
 | 
					## Github Repository: https://github.com/SuperManito/LinuxMirrors
 | 
				
			||||||
## Gitee Repository: https://gitee.com/SuperManito/LinuxMirrors
 | 
					## Gitee Repository: https://gitee.com/SuperManito/LinuxMirrors
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function AuthorSignature() {
 | 
					function AuthorSignature() {
 | 
				
			||||||
    if [ ${SYSTEM_FACTIONS} = ${SYSTEM_DEBIAN} ]; then
 | 
					    echo -e "\n${GREEN} ------------ 脚本执行结束 ------------ ${PLAIN}\n"
 | 
				
			||||||
        apt-get install -y figlet toilet >/dev/null 2>&1
 | 
					    echo -e '\n\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[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[0;1;34;94m──\033[0;1;35;95m─┐\033[0m'
 | 
				
			||||||
    elif [ ${SYSTEM_FACTIONS} = ${SYSTEM_REDHAT} ]; then
 | 
					    echo -e '\033[0;1;31;91m│\033[0m   \033[0;1;32;92m__\033[0;1;36;96m__\033[0;1;34;94m_\033[0m                       \033[0;1;34;94m__\033[0m  \033[0;1;31;91m__\033[0;1;33;93m_\033[0m            \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[0m'
 | 
				
			||||||
        yum install -y figlet toilet >/dev/null 2>&1
 | 
					    echo -e '\033[0;1;33;93m│\033[0m  \033[0;1;32;92m/\033[0m \033[0;1;36;96m_\033[0;1;34;94m__\033[0;1;35;95m/_\033[0;1;31;91m_\033[0m  \033[0;1;33;93m_\033[0;1;32;92m__\033[0;1;36;96m__\033[0;1;34;94m_\033[0m  \033[0;1;35;95m_\033[0;1;31;91m__\033[0m  \033[0;1;32;92m__\033[0;1;36;96m__\033[0;1;34;94m_/\033[0m  \033[0;1;31;91m|/\033[0m  \033[0;1;32;92m/_\033[0;1;36;96m__\033[0m \033[0;1;34;94m_\033[0;1;35;95m__\033[0;1;31;91m__\033[0m  \033[0;1;32;92m(_\033[0;1;36;96m)\033[0m \033[0;1;34;94m/_\033[0;1;35;95m__\033[0;1;31;91m__\033[0m \033[0;1;33;93m│\033[0m'
 | 
				
			||||||
    fi
 | 
					    echo -e '\033[0;1;32;92m│\033[0m  \033[0;1;36;96m\\\033[0;1;34;94m__\033[0m \033[0;1;35;95m\\\033[0;1;31;91m/\033[0m \033[0;1;33;93m/\033[0m \033[0;1;32;92m/\033[0m \033[0;1;36;96m/\033[0m \033[0;1;34;94m__\033[0m \033[0;1;35;95m\\\033[0;1;31;91m/\033[0m \033[0;1;33;93m_\033[0m \033[0;1;32;92m\/\033[0m \033[0;1;36;96m_\033[0;1;34;94m__\033[0;1;35;95m/\033[0m \033[0;1;31;91m/|\033[0;1;33;93m_/\033[0m \033[0;1;32;92m/\033[0m \033[0;1;36;96m_\033[0;1;34;94m_\033[0m \033[0;1;35;95m`/\033[0m \033[0;1;31;91m_\033[0;1;33;93m_\033[0m \033[0;1;32;92m\/\033[0m \033[0;1;36;96m/\033[0m \033[0;1;34;94m_\033[0;1;35;95m_/\033[0m \033[0;1;31;91m_\033[0;1;33;93m_\033[0m \033[0;1;32;92m\│\033[0m'
 | 
				
			||||||
    if [ -x /usr/bin/toilet ]; then
 | 
					    echo -e '\033[0;1;36;96m│\033[0m \033[0;1;34;94m__\033[0;1;35;95m_/\033[0m \033[0;1;31;91m/\033[0m \033[0;1;33;93m/\033[0;1;32;92m_/\033[0m \033[0;1;36;96m/\033[0m \033[0;1;34;94m/\033[0;1;35;95m_/\033[0m \033[0;1;31;91m/\033[0m  \033[0;1;32;92m__\033[0;1;36;96m/\033[0m \033[0;1;34;94m/\033[0m  \033[0;1;35;95m/\033[0m \033[0;1;31;91m/\033[0m  \033[0;1;32;92m/\033[0m \033[0;1;36;96m/\033[0m \033[0;1;34;94m/_\033[0;1;35;95m/\033[0m \033[0;1;31;91m/\033[0m \033[0;1;33;93m/\033[0m \033[0;1;32;92m/\033[0m \033[0;1;36;96m/\033[0m \033[0;1;34;94m/\033[0m \033[0;1;35;95m/_\033[0;1;31;91m/\033[0m \033[0;1;33;93m/_\033[0;1;32;92m/\033[0m \033[0;1;36;96m/│\033[0m'
 | 
				
			||||||
        echo -e "\n$(toilet -f slant -F border --gay SuperManito)\n"
 | 
					    echo -e '\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[0m \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[0m  \033[0;1;31;91m/_\033[0;1;33;93m/\033[0m  \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[0m \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 \033[0;1;34;94m│\033[0m'
 | 
				
			||||||
    else
 | 
					    echo -e '\033[0;1;35;95m│\033[0m          \033[0;1;34;94m/\033[0;1;35;95m_/\033[0m                                               \033[0;1;35;95m│\033[0m'
 | 
				
			||||||
        echo -e '\n\033[35m    _____                       __  ___            _ __       \033[0m'
 | 
					    echo -e '\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[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[0;1;34;94m──\033[0;1;35;95m──\033[0;1;31;91m─┘\033[0m\n'
 | 
				
			||||||
        echo -e '\033[31m   / ___/__  ______  ___  _____/  |/  /___ _____  (_) /_____  \033[0m'
 | 
					
 | 
				
			||||||
        echo -e '\033[33m   \__ \/ / / / __ \/ _ \/ ___/ /|_/ / __ `/ __ \/ / __/ __ \ \033[0m'
 | 
					    echo -e " \033[1;34mGithub\033[0m - https://github.com/SuperManito/LinuxMirrors"
 | 
				
			||||||
        echo -e '\033[32m  ___/ / /_/ / /_/ /  __/ /  / /  / / /_/ / / / / / /_/ /_/ / \033[0m'
 | 
					    echo -e " \033[1;34mGitee\033[0m  - https://gitee.com/SuperManito/LinuxMirrors\n"
 | 
				
			||||||
        echo -e '\033[36m /____/\__,_/ .___/\___/_/  /_/  /_/\__,_/_/ /_/_/\__/\____/  \033[0m'
 | 
					 | 
				
			||||||
        echo -e '\033[34m           /_/                                                \033[0m\n'
 | 
					 | 
				
			||||||
    fi
 | 
					 | 
				
			||||||
    echo -e " Github: https://github.com/SuperManito/LinuxMirrors"
 | 
					 | 
				
			||||||
    echo -e " Gitee:  https://gitee.com/SuperManito/LinuxMirrors\n"
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## 定义系统判定变量
 | 
					## 定义系统判定变量
 | 
				
			||||||
DebianRelease="lsb_release"
 | 
					DebianRelease="lsb_release"
 | 
				
			||||||
Arch=$(uname -m)
 | 
					ARCH=$(uname -m)
 | 
				
			||||||
SYSTEM_DEBIAN="Debian"
 | 
					SYSTEM_DEBIAN="Debian"
 | 
				
			||||||
SYSTEM_UBUNTU="Ubuntu"
 | 
					SYSTEM_UBUNTU="Ubuntu"
 | 
				
			||||||
SYSTEM_KALI="Kali"
 | 
					SYSTEM_KALI="Kali"
 | 
				
			||||||
@@ -59,6 +54,18 @@ PROXY_URL=https://ghproxy.com/
 | 
				
			|||||||
DOCKER_COMPOSE_VERSION=1.29.2
 | 
					DOCKER_COMPOSE_VERSION=1.29.2
 | 
				
			||||||
DOCKER_COMPOSE_DOWNLOAD_URL=https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-Linux-x86_64
 | 
					DOCKER_COMPOSE_DOWNLOAD_URL=https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-Linux-x86_64
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					RED='\033[31m'
 | 
				
			||||||
 | 
					GREEN='\033[32m'
 | 
				
			||||||
 | 
					YELLOW='\033[33m'
 | 
				
			||||||
 | 
					BLUE='\033[34m'
 | 
				
			||||||
 | 
					PLAIN='\033[0m'
 | 
				
			||||||
 | 
					BOLD='\033[1m'
 | 
				
			||||||
 | 
					SUCCESS='[\033[32mOK\033[0m]'
 | 
				
			||||||
 | 
					COMPLETE='[\033[32mDone\033[0m]'
 | 
				
			||||||
 | 
					WARN='[\033[33mWARN\033[0m]'
 | 
				
			||||||
 | 
					ERROR='[\033[31mERROR\033[0m]'
 | 
				
			||||||
 | 
					WORKING='[\033[34m*\033[0m]'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## 组合函数
 | 
					## 组合函数
 | 
				
			||||||
function Combin_Function() {
 | 
					function Combin_Function() {
 | 
				
			||||||
    PermissionJudgment
 | 
					    PermissionJudgment
 | 
				
			||||||
@@ -81,13 +88,13 @@ function EnvJudgment() {
 | 
				
			|||||||
    elif [ -f $DebianVersion ]; then
 | 
					    elif [ -f $DebianVersion ]; then
 | 
				
			||||||
        SYSTEM_FACTIONS=${SYSTEM_DEBIAN}
 | 
					        SYSTEM_FACTIONS=${SYSTEM_DEBIAN}
 | 
				
			||||||
    else
 | 
					    else
 | 
				
			||||||
        echo -e '\n\033[31m -------- 无法判断当前运行环境,请先确认脚本是否已适配当前系统! ------------ \033[0m\n'
 | 
					        echo -e "\n${RED} ------------ 无法判断当前运行环境,请先确认脚本是否已适配当前系统! ------------ ${PLAIN}\n"
 | 
				
			||||||
        exit
 | 
					        exit
 | 
				
			||||||
    fi
 | 
					    fi
 | 
				
			||||||
    ## 定义系统名称
 | 
					    ## 定义系统名称
 | 
				
			||||||
    SYSTEM_NAME=$(cat $LinuxRelease | grep -E "^NAME" | awk -F '\"' '{print$2}')
 | 
					    SYSTEM_NAME=$(cat $LinuxRelease | grep -E "^NAME=" | awk -F '=' '{print$2}' | sed "s/[\'\"]//g")
 | 
				
			||||||
    ## 定义系统版本号
 | 
					    ## 定义系统版本号
 | 
				
			||||||
    SYSTEM_VERSION_NUMBER=$(cat $LinuxRelease | grep -E "VERSION_ID" | awk -F '\"' '{print$2}')
 | 
					    SYSTEM_VERSION_NUMBER=$(cat $LinuxRelease |  grep -E "VERSION_ID=" | awk -F '=' '{print$2}' | sed "s/[\'\"]//g")
 | 
				
			||||||
    ## 判定系统名称、版本、版本号
 | 
					    ## 判定系统名称、版本、版本号
 | 
				
			||||||
    case ${SYSTEM_FACTIONS} in
 | 
					    case ${SYSTEM_FACTIONS} in
 | 
				
			||||||
    Debian)
 | 
					    Debian)
 | 
				
			||||||
@@ -104,30 +111,30 @@ function EnvJudgment() {
 | 
				
			|||||||
        ;;
 | 
					        ;;
 | 
				
			||||||
    esac
 | 
					    esac
 | 
				
			||||||
    ## 判定系统处理器架构
 | 
					    ## 判定系统处理器架构
 | 
				
			||||||
    case $Arch in
 | 
					    case ${ARCH} in
 | 
				
			||||||
    x86_64)
 | 
					    x86_64)
 | 
				
			||||||
        SYSTEM_ARCH=x86_64
 | 
					        SYSTEM_ARCH="x86_64"
 | 
				
			||||||
        SOURCE_ARCH=amd64
 | 
					        SOURCE_ARCH="amd64"
 | 
				
			||||||
        ;;
 | 
					        ;;
 | 
				
			||||||
    aarch64)
 | 
					    aarch64)
 | 
				
			||||||
        SYSTEM_ARCH=ARM64
 | 
					        SYSTEM_ARCH="ARM64"
 | 
				
			||||||
        SOURCE_ARCH=arm64
 | 
					        SOURCE_ARCH="arm64"
 | 
				
			||||||
        ;;
 | 
					        ;;
 | 
				
			||||||
    armv7l)
 | 
					    armv7l)
 | 
				
			||||||
        SYSTEM_ARCH=ARMv7
 | 
					        SYSTEM_ARCH="ARMv7"
 | 
				
			||||||
        SOURCE_ARCH=armhf
 | 
					        SOURCE_ARCH="armhf"
 | 
				
			||||||
        ;;
 | 
					        ;;
 | 
				
			||||||
    armv6l)
 | 
					    armv6l)
 | 
				
			||||||
        SYSTEM_ARCH=ARMv6
 | 
					        SYSTEM_ARCH="ARMv6"
 | 
				
			||||||
        SOURCE_ARCH=armhf
 | 
					        SOURCE_ARCH="armhf"
 | 
				
			||||||
        ;;
 | 
					        ;;
 | 
				
			||||||
    i686)
 | 
					    i386 | i686)
 | 
				
			||||||
        SYSTEM_ARCH=x86_32
 | 
					        SYSTEM_ARCH="x86_32"
 | 
				
			||||||
        echo -e '\n\033[31m---------- Docker Engine 不支持安装在 x86_32 架构的环境上 ----------\033[0m'
 | 
					        echo -e "\n${RED}---------- Docker Engine 不支持安装在 x86_32 架构的环境上! ----------${PLAIN}\n"
 | 
				
			||||||
        exit
 | 
					        exit
 | 
				
			||||||
        ;;
 | 
					        ;;
 | 
				
			||||||
    *)
 | 
					    *)
 | 
				
			||||||
        SYSTEM_ARCH=$Arch
 | 
					        SYSTEM_ARCH=${ARCH}
 | 
				
			||||||
        SOURCE_ARCH=armhf
 | 
					        SOURCE_ARCH=armhf
 | 
				
			||||||
        ;;
 | 
					        ;;
 | 
				
			||||||
    esac
 | 
					    esac
 | 
				
			||||||
@@ -151,14 +158,14 @@ function EnvJudgment() {
 | 
				
			|||||||
## 基础环境判断
 | 
					## 基础环境判断
 | 
				
			||||||
function PermissionJudgment() {
 | 
					function PermissionJudgment() {
 | 
				
			||||||
    if [ $UID -ne 0 ]; then
 | 
					    if [ $UID -ne 0 ]; then
 | 
				
			||||||
        echo -e '\033[31m ---------- Permission no enough, please use user ROOT! ---------- \033[0m'
 | 
					        echo -e "\n${ERROR} Permission no enough, please use user ROOT! \n"
 | 
				
			||||||
        exit
 | 
					        exit
 | 
				
			||||||
    fi
 | 
					    fi
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
function NetWorkJudgment() {
 | 
					function NetWorkJudgment() {
 | 
				
			||||||
    ping -c 1 www.baidu.com >/dev/null 2>&1
 | 
					    ping -c 1 www.baidu.com >/dev/null 2>&1
 | 
				
			||||||
    if [ $? -ne 0 ]; then
 | 
					    if [ $? -ne 0 ]; then
 | 
				
			||||||
        echo -e "\033[31m ----- Network connection error, please check the network environment and try again later! ----- \033[0m"
 | 
					        echo -e "\n${RED} ----- Network connection error, please check the network environment and try again later! ----- ${PLAIN}\n"
 | 
				
			||||||
        exit
 | 
					        exit
 | 
				
			||||||
    fi
 | 
					    fi
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -183,6 +190,7 @@ function InstallationEnvironment() {
 | 
				
			|||||||
        rm -rf $DockerRepo
 | 
					        rm -rf $DockerRepo
 | 
				
			||||||
        ;;
 | 
					        ;;
 | 
				
			||||||
    esac
 | 
					    esac
 | 
				
			||||||
 | 
					    echo -e "${WORKING} 开始${SYNC_TXT}软件源...\n"
 | 
				
			||||||
    case ${SYSTEM_FACTIONS} in
 | 
					    case ${SYSTEM_FACTIONS} in
 | 
				
			||||||
    Debian)
 | 
					    Debian)
 | 
				
			||||||
        apt-get update
 | 
					        apt-get update
 | 
				
			||||||
@@ -193,9 +201,10 @@ function InstallationEnvironment() {
 | 
				
			|||||||
    esac
 | 
					    esac
 | 
				
			||||||
    VERIFICATION_SOURCESYNC=$?
 | 
					    VERIFICATION_SOURCESYNC=$?
 | 
				
			||||||
    if [ ${VERIFICATION_SOURCESYNC} -ne 0 ]; then
 | 
					    if [ ${VERIFICATION_SOURCESYNC} -ne 0 ]; then
 | 
				
			||||||
        echo -e "\n\033[31m ---------- 软件源${SYNC_TXT}出错,请先确保软件包管理工具可用 ---------- \033[0m\n"
 | 
					        echo -e "\n${ERROR} 软件源${SYNC_TXT}出错,请先确保软件包管理工具可用!\n"
 | 
				
			||||||
        exit
 | 
					        exit
 | 
				
			||||||
    fi
 | 
					    fi
 | 
				
			||||||
 | 
					    echo -e "\n${SUCCESS} 软件源${SYNC_TXT}结束\n"
 | 
				
			||||||
    case ${SYSTEM_FACTIONS} in
 | 
					    case ${SYSTEM_FACTIONS} in
 | 
				
			||||||
    Debian)
 | 
					    Debian)
 | 
				
			||||||
        apt-get install -y apt-transport-https ca-certificates curl gnupg-agent software-properties-common
 | 
					        apt-get install -y apt-transport-https ca-certificates curl gnupg-agent software-properties-common
 | 
				
			||||||
@@ -285,7 +294,7 @@ function DockerEngine() {
 | 
				
			|||||||
        DOCKER_VERSION_LATEST=$(cat $DockerVersionFile | head -n 1)
 | 
					        DOCKER_VERSION_LATEST=$(cat $DockerVersionFile | head -n 1)
 | 
				
			||||||
        if [[ ${DOCKER_INSTALLED_VERSION} == ${DOCKER_VERSION_LATEST} ]]; then
 | 
					        if [[ ${DOCKER_INSTALLED_VERSION} == ${DOCKER_VERSION_LATEST} ]]; then
 | 
				
			||||||
            if [[ ${DOCKER_VERSION_INSTALL_LATEST} == "True" ]]; then
 | 
					            if [[ ${DOCKER_VERSION_INSTALL_LATEST} == "True" ]]; then
 | 
				
			||||||
                echo -e '\n\033[32m---------- 检测到已安装最新版本的 Docker Engine,跳过安装 ----------\033[0m'
 | 
					                echo -e "\n${SUCCESS} 检测到已安装最新版本的 Docker Engine,跳过安装"
 | 
				
			||||||
                ConfigureImageAccelerator
 | 
					                ConfigureImageAccelerator
 | 
				
			||||||
                systemctl status docker | grep running -q
 | 
					                systemctl status docker | grep running -q
 | 
				
			||||||
                if [ $? -eq 0 ]; then
 | 
					                if [ $? -eq 0 ]; then
 | 
				
			||||||
@@ -298,27 +307,27 @@ function DockerEngine() {
 | 
				
			|||||||
                AuthorSignature
 | 
					                AuthorSignature
 | 
				
			||||||
                exit
 | 
					                exit
 | 
				
			||||||
            else
 | 
					            else
 | 
				
			||||||
                CHOICE_E=$(echo -e '\n\033[1m└ 检测到已安装最新版本的 Docker Engine,是否继续安装其它版本 [ Y/n ]:\033[0m')
 | 
					                CHOICE_E=$(echo -e "\n${BOLD}└ 检测到已安装最新版本的 Docker Engine,是否继续安装其它版本 [ Y/n ]:${PLAIN}")
 | 
				
			||||||
            fi
 | 
					            fi
 | 
				
			||||||
        else
 | 
					        else
 | 
				
			||||||
            if [[ ${DOCKER_VERSION_INSTALL_LATEST} == "True" ]]; then
 | 
					            if [[ ${DOCKER_VERSION_INSTALL_LATEST} == "True" ]]; then
 | 
				
			||||||
                CHOICE_E=$(echo -e '\n\033[1m└ 检测到已安装旧版本的 Docker Engine,是否覆盖安装为最新版本 [ Y/n ]:\033[0m')
 | 
					                CHOICE_E=$(echo -e "\n${BOLD}└ 检测到已安装旧版本的 Docker Engine,是否覆盖安装为最新版本 [ Y/n ]:${PLAIN}")
 | 
				
			||||||
            else
 | 
					            else
 | 
				
			||||||
                CHOICE_E=$(echo -e '\n\033[1m└ 检测到已安装旧版本的 Docker Engine,是否继续安装其它版本 [ Y/n ]:\033[0m')
 | 
					                CHOICE_E=$(echo -e "\n${BOLD}└ 检测到已安装旧版本的 Docker Engine,是否继续安装其它版本 [ Y/n ]:${PLAIN}")
 | 
				
			||||||
            fi
 | 
					            fi
 | 
				
			||||||
        fi
 | 
					        fi
 | 
				
			||||||
        read -p "${CHOICE_E}" INPUT
 | 
					        read -p "${CHOICE_E}" INPUT
 | 
				
			||||||
        [ -z ${INPUT} ] && INPUT=Y
 | 
					        [ -z ${INPUT} ] && INPUT=Y
 | 
				
			||||||
        case $INPUT in
 | 
					        case $INPUT in
 | 
				
			||||||
        [Yy] | [Yy][Ee][Ss])
 | 
					        [Yy] | [Yy][Ee][Ss])
 | 
				
			||||||
            echo -en '\n[\033[34m*\033[0m] 正在卸载之前的版本... '
 | 
					            echo -en "\n${WORKING} 正在卸载之前的版本..."
 | 
				
			||||||
            RemoveOldVersion
 | 
					            RemoveOldVersion
 | 
				
			||||||
            echo -e '\n\n[\033[32mOK\033[0m] 卸载完毕\n'
 | 
					            echo -e "\n\n${SUCCESS} 卸载完毕\n"
 | 
				
			||||||
            DockerEngineInstall
 | 
					            DockerEngineInstall
 | 
				
			||||||
            ;;
 | 
					            ;;
 | 
				
			||||||
        [Nn] | [Nn][Oo]) ;;
 | 
					        [Nn] | [Nn][Oo]) ;;
 | 
				
			||||||
        *)
 | 
					        *)
 | 
				
			||||||
            echo -e '\n\033[33m---------- 输入错误,默认不覆盖安装 ----------\033[0m\n'
 | 
					            echo -e "\n${WARN} 输入错误,默认不覆盖安装!\n"
 | 
				
			||||||
            ;;
 | 
					            ;;
 | 
				
			||||||
        esac
 | 
					        esac
 | 
				
			||||||
        rm -rf $DockerVersionFile
 | 
					        rm -rf $DockerVersionFile
 | 
				
			||||||
@@ -342,11 +351,11 @@ function DockerEngineInstall() {
 | 
				
			|||||||
        esac
 | 
					        esac
 | 
				
			||||||
    else
 | 
					    else
 | 
				
			||||||
        DockerEngineVersionList
 | 
					        DockerEngineVersionList
 | 
				
			||||||
        echo -e '\n\033[32m --------- 请选择你要安装的版本,如:19.03.15 ---------- \033[0m\n'
 | 
					        echo -e "\n${GREEN} --------- 请选择你要安装的版本,如:19.03.15 ---------- ${PLAIN}\n"
 | 
				
			||||||
        cat $DockerVersionFile
 | 
					        cat $DockerVersionFile
 | 
				
			||||||
        echo -e '\n注:以上可供选择的安装版本由官方源提供,若系统过新可能无法安装较旧的版本'
 | 
					        echo -e '\n注:以上可供选择的安装版本由官方源提供,若系统过新可能无法安装较旧的版本'
 | 
				
			||||||
        while true; do
 | 
					        while true; do
 | 
				
			||||||
            CHOICE_F=$(echo -e '\n\033[1m└ 请根据上面的列表,输入你想要安装的具体版本号:\033[0m\n')
 | 
					            CHOICE_F=$(echo -e "\n${BOLD}└ 请根据上面的列表,输入你想要安装的具体版本号:${PLAIN}\n")
 | 
				
			||||||
            read -p "${CHOICE_F}" DOCKER_VERSION
 | 
					            read -p "${CHOICE_F}" DOCKER_VERSION
 | 
				
			||||||
            echo ''
 | 
					            echo ''
 | 
				
			||||||
            cat $DockerVersionFile | grep -Ew "${DOCKER_VERSION}" >/dev/null 2>&1
 | 
					            cat $DockerVersionFile | grep -Ew "${DOCKER_VERSION}" >/dev/null 2>&1
 | 
				
			||||||
@@ -356,10 +365,10 @@ function DockerEngineInstall() {
 | 
				
			|||||||
                    rm -rf $DockerVersionFile
 | 
					                    rm -rf $DockerVersionFile
 | 
				
			||||||
                    break
 | 
					                    break
 | 
				
			||||||
                else
 | 
					                else
 | 
				
			||||||
                    echo -e '\033[33m ---------- 请输入正确的版本号 ---------- \033[0m'
 | 
					                    echo -e "${ERROR} 请输入正确的版本号!"
 | 
				
			||||||
                fi
 | 
					                fi
 | 
				
			||||||
            else
 | 
					            else
 | 
				
			||||||
                echo -e '\033[33m ---------- 输入错误请重新输入 ---------- \033[0m'
 | 
					                echo -e "${ERROR} 输入错误请重新输入!"
 | 
				
			||||||
            fi
 | 
					            fi
 | 
				
			||||||
        done
 | 
					        done
 | 
				
			||||||
        case ${SYSTEM_FACTIONS} in
 | 
					        case ${SYSTEM_FACTIONS} in
 | 
				
			||||||
@@ -395,7 +404,7 @@ function ConfigureImageAccelerator() {
 | 
				
			|||||||
    if [[ ${REGISTRY_SOURCE_OFFICIAL} == "False" ]]; then
 | 
					    if [[ ${REGISTRY_SOURCE_OFFICIAL} == "False" ]]; then
 | 
				
			||||||
        if [ -d $DockerDir ] && [ -e $DockerConfig ]; then
 | 
					        if [ -d $DockerDir ] && [ -e $DockerConfig ]; then
 | 
				
			||||||
            if [ -e $DockerConfigBackup ]; then
 | 
					            if [ -e $DockerConfigBackup ]; then
 | 
				
			||||||
                CHOICE_BACKUP=$(echo -e "\n\033[1m└ 检测到已备份的 Docker 配置文件,是否覆盖备份 [ Y/n ]:\033[0m")
 | 
					                CHOICE_BACKUP=$(echo -e "\n${BOLD}└ 检测到已备份的 Docker 配置文件,是否覆盖备份 [ Y/n ]:${PLAIN}")
 | 
				
			||||||
                read -p "${CHOICE_BACKUP}" INPUT
 | 
					                read -p "${CHOICE_BACKUP}" INPUT
 | 
				
			||||||
                [ -z ${INPUT} ] && INPUT=Y
 | 
					                [ -z ${INPUT} ] && INPUT=Y
 | 
				
			||||||
                case $INPUT in
 | 
					                case $INPUT in
 | 
				
			||||||
@@ -404,12 +413,12 @@ function ConfigureImageAccelerator() {
 | 
				
			|||||||
                    ;;
 | 
					                    ;;
 | 
				
			||||||
                [Nn] | [Nn][Oo]) ;;
 | 
					                [Nn] | [Nn][Oo]) ;;
 | 
				
			||||||
                *)
 | 
					                *)
 | 
				
			||||||
                    echo -e '\n\033[33m------------ 输入错误,默认不覆盖 ------------\033[0m '
 | 
					                    echo -e "\n${WARN} 输入错误,默认不覆盖!"
 | 
				
			||||||
                    ;;
 | 
					                    ;;
 | 
				
			||||||
                esac
 | 
					                esac
 | 
				
			||||||
            else
 | 
					            else
 | 
				
			||||||
                cp -rf $DockerConfig $DockerConfigBackup >/dev/null 2>&1
 | 
					                cp -rf $DockerConfig $DockerConfigBackup >/dev/null 2>&1
 | 
				
			||||||
                echo -e "\n\033[1m└ 已备份原有 Docker 配置文件至 $DockerConfigBackup ...... \033[0m"
 | 
					                echo -e "\n${COMPLETE} 已备份原有 Docker 配置文件至 $DockerConfigBackup\n"
 | 
				
			||||||
            fi
 | 
					            fi
 | 
				
			||||||
            sleep 2s
 | 
					            sleep 2s
 | 
				
			||||||
        else
 | 
					        else
 | 
				
			||||||
@@ -426,7 +435,7 @@ function ConfigureImageAccelerator() {
 | 
				
			|||||||
function DockerCompose() {
 | 
					function DockerCompose() {
 | 
				
			||||||
    if [[ ${DOCKER_COMPOSE} == "True" ]]; then
 | 
					    if [[ ${DOCKER_COMPOSE} == "True" ]]; then
 | 
				
			||||||
        [ -e $DockerCompose ] && rm -rf $DockerCompose
 | 
					        [ -e $DockerCompose ] && rm -rf $DockerCompose
 | 
				
			||||||
        if [[ ${Arch} == "x86_64" ]]; then
 | 
					        if [[ ${ARCH} == "x86_64" ]]; then
 | 
				
			||||||
            echo -e ''
 | 
					            echo -e ''
 | 
				
			||||||
            if [ ${DOCKER_COMPOSE_DOWNLOAD_PROXY} == "True" ]; then
 | 
					            if [ ${DOCKER_COMPOSE_DOWNLOAD_PROXY} == "True" ]; then
 | 
				
			||||||
                curl -L ${PROXY_URL}${DOCKER_COMPOSE_DOWNLOAD_URL} -o $DockerCompose
 | 
					                curl -L ${PROXY_URL}${DOCKER_COMPOSE_DOWNLOAD_URL} -o $DockerCompose
 | 
				
			||||||
@@ -447,7 +456,7 @@ function DockerCompose() {
 | 
				
			|||||||
            else
 | 
					            else
 | 
				
			||||||
                pip3 install docker-compose
 | 
					                pip3 install docker-compose
 | 
				
			||||||
            fi
 | 
					            fi
 | 
				
			||||||
            [ $? -ne 0 ] && echo -e "\n\033[31m---------- Docker Compose 安装失败 ----------\033[0m\n\n检测到当前处理器架构为 ${Arch} ,无法保证安装结果,自行查看 pip 报错原因"
 | 
					            [ $? -ne 0 ] && echo -e "\n${ERROR} Docker Compose 安装失败\n\n检测到当前处理器架构为 ${ARCH} ,无法绝对保证安装成功,自行查看 pip 报错原因"
 | 
				
			||||||
        fi
 | 
					        fi
 | 
				
			||||||
    fi
 | 
					    fi
 | 
				
			||||||
    echo -e ''
 | 
					    echo -e ''
 | 
				
			||||||
@@ -455,14 +464,14 @@ function DockerCompose() {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
## 查看版本并验证安装结果
 | 
					## 查看版本并验证安装结果
 | 
				
			||||||
function ShowVersion() {
 | 
					function ShowVersion() {
 | 
				
			||||||
    echo -e '\033[32m---------- 验证安装版本 ----------\033[0m\n'
 | 
					    echo -e "${WORKING} 验证安装版本...\n"
 | 
				
			||||||
    docker -v
 | 
					    docker -v
 | 
				
			||||||
    VERIFICATION_DOCKER=$?
 | 
					    VERIFICATION_DOCKER=$?
 | 
				
			||||||
    [[ ${DOCKER_COMPOSE} == "True" ]] && docker-compose -v
 | 
					    [[ ${DOCKER_COMPOSE} == "True" ]] && docker-compose -v
 | 
				
			||||||
    if [ ${VERIFICATION_DOCKER} -eq 0 ]; then
 | 
					    if [ ${VERIFICATION_DOCKER} -eq 0 ]; then
 | 
				
			||||||
        echo -e '\n\033[32m---------- 安装完成 ----------\033[0m'
 | 
					        echo -e "\n${SUCCESS} 安装完成"
 | 
				
			||||||
    else
 | 
					    else
 | 
				
			||||||
        echo -e '\n\033[31m---------- 安装失败 ----------\033[0m'
 | 
					        echo -e "\n${ERROR} 安装失败"
 | 
				
			||||||
        case ${SYSTEM_FACTIONS} in
 | 
					        case ${SYSTEM_FACTIONS} in
 | 
				
			||||||
        Debian)
 | 
					        Debian)
 | 
				
			||||||
            echo -e "\n检查源文件: cat $DockerSourceList"
 | 
					            echo -e "\n检查源文件: cat $DockerSourceList"
 | 
				
			||||||
@@ -485,9 +494,9 @@ function ShowVersion() {
 | 
				
			|||||||
        sleep 2
 | 
					        sleep 2
 | 
				
			||||||
        systemctl status docker | grep running -q
 | 
					        systemctl status docker | grep running -q
 | 
				
			||||||
        if [ $? -ne 0 ]; then
 | 
					        if [ $? -ne 0 ]; then
 | 
				
			||||||
            echo -e '\n\033[31m [ERROR] 检测到 Docker 服务启动异常,可能由于重复安装相同版本导致\033[0m'
 | 
					            echo -e "\n${ERROR} 检测到 Docker 服务启动异常,可能由于重复安装相同版本导致"
 | 
				
			||||||
            echo -e '\n\033[31m 请执行 systemctl start docker 或 service docker start 命令尝试启动\033[0m'
 | 
					            echo -e "\n请执行 systemctl start docker 或 service docker start 命令尝试启动"
 | 
				
			||||||
            echo -e '\n\033[31m 官方安装文档:https://docs.docker.com/engine/install\033[0m'
 | 
					            echo -e "\n官方安装文档:https://docs.docker.com/engine/install"
 | 
				
			||||||
        fi
 | 
					        fi
 | 
				
			||||||
    fi
 | 
					    fi
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -542,7 +551,7 @@ function ChooseMirrors() {
 | 
				
			|||||||
    echo -e "        系统时间  $(date "+%Y-%m-%d %H:%M:%S")"
 | 
					    echo -e "        系统时间  $(date "+%Y-%m-%d %H:%M:%S")"
 | 
				
			||||||
    echo -e ''
 | 
					    echo -e ''
 | 
				
			||||||
    echo -e '#####################################################'
 | 
					    echo -e '#####################################################'
 | 
				
			||||||
    CHOICE_A=$(echo -e '\n\033[1m└ 请选择并输入你想使用的 Docker CE 源 [ 1~8 ]:\033[0m')
 | 
					    CHOICE_A=$(echo -e "\n${BOLD}└ 请选择并输入你想使用的 Docker CE 源 [ 1~8 ]:${PLAIN}")
 | 
				
			||||||
    read -p "${CHOICE_A}" INPUT
 | 
					    read -p "${CHOICE_A}" INPUT
 | 
				
			||||||
    case $INPUT in
 | 
					    case $INPUT in
 | 
				
			||||||
    1)
 | 
					    1)
 | 
				
			||||||
@@ -571,12 +580,12 @@ function ChooseMirrors() {
 | 
				
			|||||||
        ;;
 | 
					        ;;
 | 
				
			||||||
    *)
 | 
					    *)
 | 
				
			||||||
        SOURCE="mirrors.aliyun.com/docker-ce"
 | 
					        SOURCE="mirrors.aliyun.com/docker-ce"
 | 
				
			||||||
        echo -e '\n\033[33m---------- 输入错误,默认使用阿里云 ----------\033[0m'
 | 
					        echo -e "\n${WARN} 输入错误,默认使用阿里云!"
 | 
				
			||||||
        sleep 1s
 | 
					        sleep 1s
 | 
				
			||||||
        ;;
 | 
					        ;;
 | 
				
			||||||
    esac
 | 
					    esac
 | 
				
			||||||
    ## 是否手动选择安装版本
 | 
					    ## 是否手动选择安装版本
 | 
				
			||||||
    CHOICE_C=$(echo -e '\n\033[1m  └ 是否安装最新版本的 Docker Engine [ Y/n ]:\033[0m')
 | 
					    CHOICE_C=$(echo -e "\n${BOLD}  └ 是否安装最新版本的 Docker Engine [ Y/n ]:${PLAIN}")
 | 
				
			||||||
    read -p "${CHOICE_C}" INPUT
 | 
					    read -p "${CHOICE_C}" INPUT
 | 
				
			||||||
    [ -z ${INPUT} ] && INPUT=Y
 | 
					    [ -z ${INPUT} ] && INPUT=Y
 | 
				
			||||||
    case $INPUT in
 | 
					    case $INPUT in
 | 
				
			||||||
@@ -586,15 +595,15 @@ function ChooseMirrors() {
 | 
				
			|||||||
    [Nn] | [Nn][Oo])
 | 
					    [Nn] | [Nn][Oo])
 | 
				
			||||||
        DOCKER_VERSION_INSTALL_LATEST="False"
 | 
					        DOCKER_VERSION_INSTALL_LATEST="False"
 | 
				
			||||||
        if [ ${SOURCE} != "download.docker.com" ]; then
 | 
					        if [ ${SOURCE} != "download.docker.com" ]; then
 | 
				
			||||||
            echo -e "\n\033[33m ---------- Docker CE 源已替换成官方源 ---------- \033[0m"
 | 
					            echo -e "\n${WARN} Docker CE 源已替换成官方源!"
 | 
				
			||||||
        fi
 | 
					        fi
 | 
				
			||||||
        ;;
 | 
					        ;;
 | 
				
			||||||
    *)
 | 
					    *)
 | 
				
			||||||
        DOCKER_VERSION_INSTALL_LATEST="True"
 | 
					        DOCKER_VERSION_INSTALL_LATEST="True"
 | 
				
			||||||
        echo -e '\n\033[33m---------- 输入错误,默认安装最新版本 ----------\033[0m'
 | 
					        echo -e "\n${WARN} 输入错误,默认安装最新版本!"
 | 
				
			||||||
        ;;
 | 
					        ;;
 | 
				
			||||||
    esac
 | 
					    esac
 | 
				
			||||||
    CHOICE_B=$(echo -e '\n\033[1m└ 请选择并输入你想使用的 Docker Hub 源 [ 1~12 ]:\033[0m')
 | 
					    CHOICE_B=$(echo -e "\n${BOLD}└ 请选择并输入你想使用的 Docker Hub 源 [ 1~12 ]:${PLAIN}")
 | 
				
			||||||
    read -p "${CHOICE_B}" INPUT
 | 
					    read -p "${CHOICE_B}" INPUT
 | 
				
			||||||
    case $INPUT in
 | 
					    case $INPUT in
 | 
				
			||||||
    1)
 | 
					    1)
 | 
				
			||||||
@@ -648,21 +657,21 @@ function ChooseMirrors() {
 | 
				
			|||||||
    *)
 | 
					    *)
 | 
				
			||||||
        REGISTRY_SOURCE="registry.cn-hangzhou.aliyuncs.com"
 | 
					        REGISTRY_SOURCE="registry.cn-hangzhou.aliyuncs.com"
 | 
				
			||||||
        REGISTRY_SOURCE_OFFICIAL="False"
 | 
					        REGISTRY_SOURCE_OFFICIAL="False"
 | 
				
			||||||
        echo -e '\n\033[33m---------- 输入错误,默认使用阿里云(杭州) ----------\033[0m'
 | 
					        echo -e "\n${WARN} 输入错误,默认使用 ${BLUE}阿里云(杭州)${PLAIN}!"
 | 
				
			||||||
        sleep 1s
 | 
					        sleep 1s
 | 
				
			||||||
        ;;
 | 
					        ;;
 | 
				
			||||||
    esac
 | 
					    esac
 | 
				
			||||||
    if [ -x $DockerCompose ]; then
 | 
					    if [ -x $DockerCompose ]; then
 | 
				
			||||||
        CHOICE_D=$(echo -e '\n\033[1m└ 检测到已安装 Docker Compose ,是否覆盖安装 [ Y/n ]:\033[0m')
 | 
					        CHOICE_D=$(echo -e "\n${BOLD}└ 检测到已安装 Docker Compose ,是否覆盖安装 [ Y/n ]:${PLAIN}")
 | 
				
			||||||
    else
 | 
					    else
 | 
				
			||||||
        CHOICE_D=$(echo -e '\n\033[1m└ 是否安装 Docker Compose [ Y/n ]:\033[0m')
 | 
					        CHOICE_D=$(echo -e "\n${BOLD}└ 是否安装 Docker Compose [ Y/n ]:${PLAIN}")
 | 
				
			||||||
    fi
 | 
					    fi
 | 
				
			||||||
    read -p "${CHOICE_D}" INPUT
 | 
					    read -p "${CHOICE_D}" INPUT
 | 
				
			||||||
    [ -z ${INPUT} ] && INPUT=Y
 | 
					    [ -z ${INPUT} ] && INPUT=Y
 | 
				
			||||||
    case $INPUT in
 | 
					    case $INPUT in
 | 
				
			||||||
    [Yy] | [Yy][Ee][Ss])
 | 
					    [Yy] | [Yy][Ee][Ss])
 | 
				
			||||||
        DOCKER_COMPOSE="True"
 | 
					        DOCKER_COMPOSE="True"
 | 
				
			||||||
        CHOICE_D1=$(echo -e '\n\033[1m  └ 是否使用国内代理进行下载 [ Y/n ]:\033[0m')
 | 
					        CHOICE_D1=$(echo -e "\n${BOLD}  └ 是否使用国内代理进行下载 [ Y/n ]:${PLAIN}")
 | 
				
			||||||
        read -p "${CHOICE_D1}" INPUT
 | 
					        read -p "${CHOICE_D1}" INPUT
 | 
				
			||||||
        [ -z ${INPUT} ] && INPUT=Y
 | 
					        [ -z ${INPUT} ] && INPUT=Y
 | 
				
			||||||
        case $INPUT in
 | 
					        case $INPUT in
 | 
				
			||||||
@@ -674,7 +683,7 @@ function ChooseMirrors() {
 | 
				
			|||||||
            ;;
 | 
					            ;;
 | 
				
			||||||
        *)
 | 
					        *)
 | 
				
			||||||
            DOCKER_COMPOSE_DOWNLOAD_PROXY="False"
 | 
					            DOCKER_COMPOSE_DOWNLOAD_PROXY="False"
 | 
				
			||||||
            echo -e '\n\033[33m---------- 输入错误,默认不使用 ----------\033[0m\n'
 | 
					            echo -e "\n${WARN} 输入错误,默认不使用!\n"
 | 
				
			||||||
            ;;
 | 
					            ;;
 | 
				
			||||||
        esac
 | 
					        esac
 | 
				
			||||||
        ;;
 | 
					        ;;
 | 
				
			||||||
@@ -683,7 +692,7 @@ function ChooseMirrors() {
 | 
				
			|||||||
        ;;
 | 
					        ;;
 | 
				
			||||||
    *)
 | 
					    *)
 | 
				
			||||||
        DOCKER_COMPOSE="False"
 | 
					        DOCKER_COMPOSE="False"
 | 
				
			||||||
        echo -e '\n\033[33m---------- 输入错误,默认不安装 ----------\033[0m\n'
 | 
					        echo -e "\n${WARN} 输入错误,默认不安装!\n"
 | 
				
			||||||
        ;;
 | 
					        ;;
 | 
				
			||||||
    esac
 | 
					    esac
 | 
				
			||||||
    echo -e ''
 | 
					    echo -e ''
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										19
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										19
									
								
								README.md
									
									
									
									
									
								
							@@ -37,19 +37,19 @@
 | 
				
			|||||||
</tr>
 | 
					</tr>
 | 
				
			||||||
<tr>
 | 
					<tr>
 | 
				
			||||||
    <td><a href="https://www.kali.org"><img src="./icon/kali.svg" width="16" height="16"/></a> Kali Linux</td>
 | 
					    <td><a href="https://www.kali.org"><img src="./icon/kali.svg" width="16" height="16"/></a> Kali Linux</td>
 | 
				
			||||||
    <td align="center">2.0 ~ 2021.3</td>
 | 
					    <td align="center">2.0 ~ 2021.4</td>
 | 
				
			||||||
</tr>
 | 
					</tr>
 | 
				
			||||||
<tr>
 | 
					<tr>
 | 
				
			||||||
    <td><a href="https://www.redhat.com/zhtechnologies/linux-platforms/enterprise-linux"><img src="./icon/redhat.svg" width="16" height="16"/></a> RHEL</td>
 | 
					    <td><a href="https://access.redhat.com/products/red-hat-enterprise-linux"><img src="./icon/redhat.svg" width="16" height="16"/></a> RHEL</td>
 | 
				
			||||||
    <td align="center">7.0 ~ 8.4</td>
 | 
					    <td align="center">7.0 ~ 8.5</td>
 | 
				
			||||||
</tr>
 | 
					</tr>
 | 
				
			||||||
<tr>
 | 
					<tr>
 | 
				
			||||||
    <td><a href="https://www.centos.org"><img src="./icon/centos.svg" width="16" height="16"/></a> CentOS</td>
 | 
					    <td><a href="https://www.centos.org"><img src="./icon/centos.svg" width="16" height="16"/></a> CentOS</td>
 | 
				
			||||||
    <td align="center">7.0 ~ 8.4</td>
 | 
					    <td align="center">7.0 ~ 8.5</td>
 | 
				
			||||||
</tr>
 | 
					</tr>
 | 
				
			||||||
<tr>
 | 
					<tr>
 | 
				
			||||||
    <td><a href="https://getfedora.org/zh_Hans_CN"><img src="./icon/fedora.ico" width="16" height="16"/></a> Fedora</td>
 | 
					    <td><a href="https://getfedora.org/zh_Hans_CN"><img src="./icon/fedora.ico" width="16" height="16"/></a> Fedora</td>
 | 
				
			||||||
    <td align="center">28 ~ 34</td>
 | 
					    <td align="center">28 ~ 35</td>
 | 
				
			||||||
</tr>
 | 
					</tr>
 | 
				
			||||||
</table>
 | 
					</table>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -129,16 +129,11 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
***
 | 
					***
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### 捐助作者
 | 
					### License
 | 
				
			||||||
<img src="./icon/thanks.jpg" width="250" height="250" alt="微信赞赏码"/><br/>
 | 
					Copyright © 2021, [SuperManito](https://github.com/SuperManito). Released under the [GPL-2.0](https://github.com/SuperManito/LinuxMirrors/blob/main/LICENSE).
 | 
				
			||||||
> 项目已设立开源许可协议,传播时需在显著位置标注来源和作者,请尊重本人的知识成果\
 | 
					> 项目已设立开源许可协议,传播时需在显著位置标注来源和作者,请尊重本人的知识成果\
 | 
				
			||||||
> 建议通过命令直接调用脚本,如有意见与建议您可以提交至 __Issues__,谢谢
 | 
					> 建议通过命令直接调用脚本,如有意见与建议您可以提交至 __Issues__,谢谢
 | 
				
			||||||
 | 
					
 | 
				
			||||||
***
 | 
					***
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### License
 | 
					 | 
				
			||||||
Copyright © 2021, [SuperManito](https://github.com/SuperManito). Released under the [GPL-2.0](https://github.com/SuperManito/LinuxMirrors/blob/main/LICENSE).
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
***
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
__如果您觉得这个项目不错的话可以在右上角给颗⭐吗?方便分享给更多的朋友吗?__
 | 
					__如果您觉得这个项目不错的话可以在右上角给颗⭐吗?方便分享给更多的朋友吗?__
 | 
				
			||||||
							
								
								
									
										
											BIN
										
									
								
								icon/thanks.jpg
									
									
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								icon/thanks.jpg
									
									
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 Before Width: | Height: | Size: 188 KiB  | 
		Reference in New Issue
	
	Block a user