【Shell部署脚本】更换源

文章描述了一个bash脚本,用于在Ubuntu系统中管理apt源,支持阿里云和清华大学的不同版本(18.04和22.04)。脚本包含异常处理、权限检查、备份原始sources.list以及用户选择并安装特定源的功能。
摘要由CSDN通过智能技术生成
#!/bin/bash

# 异常捕捉
set -e

# # 判断权限
[ $(id -u) -gt 0 ] && echo "Error: 无法操作, 权限不够" && exit 1

# # 备份文件
cp /etc/apt/sources.list /etc/apt/sources.list.bak

# 阿里源18.04
aliyun_1804() {
    sudo tee /etc/apt/sources.list <<EOF
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
EOF
}

# 阿里源22.04
aliyun_2204() {
    sudo tee /etc/apt/sources.list <<EOF
deb http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
EOF
}

# 清华源18.04
tsinghua_1804() {
    sudo tee /etc/apt/sources.list <<EOF
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
EOF
}

# 清华源22.04
tsinghua_2204() {
    sudo tee /etc/apt/sources.list <<EOF
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
EOF
}

# 安装源
installSelectedSource() {
    selectedNum=$1
    case $selectedNum in
    "1")
        aliyun_1804
        ;;
    "2")
        tsinghua_1804
        ;;
    "3")
        aliyun_2204
        ;;
    "4")
        tsinghua_2204
        ;;
    *)
        echo "输入错误!"
        ;;
    esac
}

# 选择源
echo -e "\e[31m当前提供的可安装源如下: \e[0m"
sources=("阿里源18.04" "清华源18.04" "阿里源22.04" "清华源22.04")
for ((index = 0; index < ${#sources[@]}; index++)); do
    item="${sources[index]}"
    echo -e "\t$((index + 1)).$item"
done

maxNum=${#sources[@]}

echo -e "\033[32m请输入编号1-${maxNum}以继续(键入Ctrl-C, q, exit, quit退出) ▶\033[0m"
read selectedNum

if [[ "$selectedNum" =~ ^[0-9]+$ ]]; then
    if ((selectedNum >= 1 && selectedNum <= maxNum)); then
        installSelectedSource "${selectedNum}"
        exit 0
    fi
fi

case $selectedNum in
"q" | "exit" | "quit")
    exit 0
    ;;
*)
    echo "输入错误!"
    ;;
esac

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值