Log() { LogFile=/tmp/`basename $0`.log LogDate=$(date +"%F %T") echo -e " ||| ${LogDate} ||| : $1 =====|||===== " >> $LogFile } Software_Pre() { #查找安装包是否在当前目录下 ## install Plug-in Funcation [ -d $TmpSoft ] || mkdir -p $TmpSoft #判断$TmpSoft是否存在,是否为目录,若不存在或者不是目录,则创建$TmpSoft目录 if [ -f $Home/software/$1 ];then #判断$Home/software/$1是否为常规文件,$Home取变量值,在此脚本中Home=$(cd `dirname $0`;pwd),是当前脚本的目录 Log "$Home/software/$1 Prepare --------------->"
#/dev/null 相当于linux中的垃圾回收站,可以将不想要的标准输出丢弃 if echo $Home/software/$1|egrep "(.tar|.tgz)" &> /dev/null;then #判断software中的文件是.tar还是.tgz tar xzvf $Home/software/$1 -C $TmpSoft 2>&1 > /dev/null|tee -a $LogFile #解压安装包,tee -a从标准输入设备读取数据,
#将其内容输出到标准输出设备,同时保存为文件,"2>&1 > /dev/null | tee -a $LogFile"的意思是丢弃标准输出,把错误输出保存在$TmpSoft文件 Log "tar xzvf $Home/software/$1 -C $TmpSoft Complete" elif echo $Home/software/$1|egrep "(.zip)" &> /dev/null;then #判断software中的文件是否为.zip类型的 unzip -o $Home/software/$1 -d $TmpSoft 2>&1 > /dev/null|tee -a $LogFile Log "unzip -o $Home/software/$1 -d $TmpSoft Complete" else GreenChar "Unknown File Type $1" 2>&1 | tee -a $LogFile #未知文件类型 fi Log "$Home/software/$1 Prepare <---------------" elif [ -f $TmpSoft/$1 ];then #查找安装包是否在临时目录下 Log "$TmpSoft/$1 Prepare --------------->" if echo $TmpSoft/$1|egrep "(.tar|.tgz)" &> /dev/null;then tar xzvf $TmpSoft/$1 -C $TmpSoft 2>&1 > /dev/null|tee -a $LogFile Log "tar xzvf $TmpSoft/$1 -C $TmpSoft Complete" elif echo $TmpSoft/$1|egrep "(.zip)" &> /dev/null;then unzip -o $TmpSoft/$1 -d $TmpSoft 2>&1 > /dev/null|tee -a $LogFile Log "unzip -o $TmpSoft/$1 -d $TmpSoft Complete" else GreenChar "Unknown File Type $1" 2>&1 | tee -a $LogFile fi Log "$TmpSoft/$1 Prepare <---------------" else #若不在当前目录也不再临时目录,在去网上下载安装包,此http地址可以是公司的安装包存储位置也可是私人包存放位置 Log "wget $1 Prepare --------------->" wget http://static.example.com/software/$1 -P $TmpSoft 2>> $LogFile if [ -f $TmpSoft/$1 ];then if echo $TmpSoft/$1|egrep "(.tar|.tgz)" &> /dev/null;then tar xzvf $TmpSoft/$1 -C $TmpSoft 2>&1 > /dev/null|tee -a $LogFile Log "tar xzvf $TmpSoft/$1 -C $TmpSoft in wget Complete" elif echo $TmpSoft/$1|egrep "(.zip)" &> /dev/null;then unzip -o $TmpSoft/$1 -d $TmpSoft 2>&1 > /dev/null|tee -a $LogFile Log "unzip -o $TmpSoft/$1 -d $TmpSoft in wget Complete" else GreenChar "Unknown File Type $1" 2>&1 | tee -a $LogFile fi else RedChar "Unknown or Not find $1" 2>&1|tee -a $LogFile #安装包未知或者没有发现,标记红色 RedBGChar "Please Manual Download $1" 2>&1|tee -a $LogFile #请手动下载此安装包,标记红框 exit 2 fi Log "wget $1 Prepare <---------------" fi [ $? -eq 0 ] && GreenChar "<< $1 >> Software Prepare :" 2>&1|tee -a $LogFile|| RedChar "<< $1 >> Software Prepare :" 2>&1|tee -a $LogFile #若上一步安装包寻找成功,则显示 installpack Software Prepare:标记为绿色 #若寻找失败,则显示 installpack Software Prepare:标记为红色 }