#!/bin/bash CMD_INSTALL="" CMD_UPDATE="" CMD_REMOVE="" SOFTWARE_UPDATED=0 #########color code############# RED="31m" # Error message GREEN="32m" # Success message YELLOW="33m" # Warning message BLUE="36m" # Info message ###############color echo func################# colorEcho(){ echo -e "\033[${1}${@:2}\033[0m" 1>& 2 } # 判断系统的包管理工具 apt, yum, or zypper getPackageManageTool(){ if [[ -n `command -v apt-get` ]];then CMD_INSTALL="apt-get -y -qq install" CMD_UPDATE="apt-get -qq update" CMD_REMOVE="apt-get -y remove" elif [[ -n `command -v yum` ]]; then CMD_INSTALL="yum -y -q install" CMD_UPDATE="yum -q makecache" CMD_REMOVE="yum -y remove" elif [[ -n `command -v zypper` ]]; then CMD_INSTALL="zypper -y install" CMD_UPDATE="zypper ref" CMD_REMOVE="zypper -y remove" else return 1 fi return 0 } ## 安装所需要的程序,及依赖程序 installDemandSoftwares(){ # 检查系统包管理方式,更新包 getPackageManageTool if [[ $? -eq 1 ]]; then colorEcho ${RED} "系统的包管理不是 APT or YUM, 请手动安装所需要的软件." return 1 fi ### 更新程序引索 if [[ $SOFTWARE_UPDATED -eq 0 ]]; then colorEcho ${BLUE} "正在更新软件包管理..." $CMD_UPDATE SOFTWARE_UPDATED=1 fi for software in $@ do ## 安装该软件 if [[ -n `command -v ${software}` ]]; then colorEcho ${GREEN} "${software}已经安装了...跳过..." else colorEcho ${BLUE} "正在安装 ${software}.." $CMD_INSTALL ${software} ## 判断该软件是否安装成功 if [[ $? -ne 0 ]]; then colorEcho ${RED} "安装 ${software} 失败. 请手动安装该程序." return 1 else colorEcho ${GREEN} "已经成功安装 ${software}." fi fi done return 0 } installDemandSoftwares iftop vim curl wget mtr