#!/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
【Shell部署脚本】更换源
最新推荐文章于 2024-09-30 08:05:35 发布
文章描述了一个bash脚本,用于在Ubuntu系统中管理apt源,支持阿里云和清华大学的不同版本(18.04和22.04)。脚本包含异常处理、权限检查、备份原始sources.list以及用户选择并安装特定源的功能。
摘要由CSDN通过智能技术生成