Linux-快速搭建本地和网络YUM源

#!/bin/bash
#AUTHOR:AN
#DATE:2019-04-11
#DESCRIBE:快速搭建本地和网络YUM源

#输出不同颜色的字体
#$1代表颜色编号,$2代表输出内容
cecho(){
	echo -e "\033[$1m$2\033[0m"
}

#创建目录,先检测目录是否存在
MKDIR(){
        if [ ! -d "$1" ];then
                mkdir -p "$1"
        else
                cecho 31 "$1已存在"		#红色
                read -p "重新输入目录名:" DIR
                MKDIR $DIR
        fi
}

config_input(){
	read -p "镜像位置:" Location
	read -p "配置文件名字:" Name
}

#创建YUM配置文件
#$1代表文件名;$2代表YUM源的URL地址
config_file(){			
	touch /etc/yum.repos.d/$1.repo
	cat >>/etc/yum.repos.d/$1.repo </dev/null	#清空yum缓存
cecho 36 "$(yum repolist |tail -1)"
cecho 36 "装包测试......"
yum -y remove xeyes &>/dev/null
yum -y install xeyes &>/dev/null
rpm -q xorg-x11-apps &>/dev/null
if [ $? -eq 0 ];then
	cecho 36 "YUM创建成功"  
	yum -y remove xeyes &>/dev/null
	exit 0
else
	cecho 31 "YUM创建失败" >&2 && exit 65
fi
}

###############################主程序###############################
clear
#把原有的.repo文件放入目录repo中
if [ -d /etc/yum.repos.d/repo ];then 
	mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/repo
else
	mkdir /etc/yum.repos.d/repo
	mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/repo
fi

cecho 34 "**************选择YUM源类型**************"
echo "1.本地"
echo "2.网络"
while :
do
read -p "请选择(1|2):" Type
case $Type in
1)
	read -p "挂载点:" Mount_Dir	
	MKDIR $Mount_Dir			#创建挂载点
	config_input				#输入内容
	mount $Location $Mount_Dir &>/dev/null	#挂载镜像
	config_file "$Name" "file://$Mount_Dir"	#写入配置文件		
;;
2)
	cecho 34 "**************选择网络共享类型**************"
	echo "1.ftp"
	echo "2.http"
	read -p "请选择(1|2):" Type
	case $Type in
	1)
		config_input	#输入内容
		config_file "$Name" "ftp://$Location"
	;;
	2)
		config_input	#输入内容
		config_file "$Name" "http://$Location"
	;;
	*)
		cecho 31 "输入(1|2)"
	esac
;;
*)
	cecho 31 "输入(1|2)"
esac
done

你可能感兴趣的:(Shell)