Log() {

    LogFile=/tmp/`basename $`.log
LogDate=$(date +"%F %T")
echo -e "\n\n||| ${LogDate} ||| : $1 =====|||===== \n" >> $LogFile
} Software_Pre() { #查找安装包是否在当前目录下
## install Plug-in Funcation
[ -d $TmpSoft ] || mkdir -p $TmpSoft #判断$TmpSoft是否存在,是否为目录,若不存在或者不是目录,则创建$TmpSoft目录
if [ -f $Home/software/$ ];then #判断$Home/software/$1是否为常规文件,$Home取变量值,在此脚本中Home=$(cd `dirname $0`;pwd),是当前脚本的目录 Log "$Home/software/$1 Prepare --------------->"
              #/dev/null 相当于linux中的垃圾回收站,可以将不想要的标准输出丢弃
if echo $Home/software/$|egrep "(.tar|.tgz)" &> /dev/null;then #判断software中的文件是.tar还是.tgz
tar xzvf $Home/software/$ -C $TmpSoft >& > /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/$|egrep "(.zip)" &> /dev/null;then #判断software中的文件是否为.zip类型的
unzip -o $Home/software/$ -d $TmpSoft >& > /dev/null|tee -a $LogFile
Log "unzip -o $Home/software/$1 -d $TmpSoft Complete"
else
GreenChar "Unknown File Type $1" >& | tee -a $LogFile #未知文件类型
fi
Log "$Home/software/$1 Prepare <---------------" elif [ -f $TmpSoft/$ ];then
#查找安装包是否在临时目录下
Log "$TmpSoft/$1 Prepare --------------->"
if echo $TmpSoft/$|egrep "(.tar|.tgz)" &> /dev/null;then
tar xzvf $TmpSoft/$ -C $TmpSoft >& > /dev/null|tee -a $LogFile
Log "tar xzvf $TmpSoft/$1 -C $TmpSoft Complete"
elif echo $TmpSoft/$|egrep "(.zip)" &> /dev/null;then
unzip -o $TmpSoft/$ -d $TmpSoft >& > /dev/null|tee -a $LogFile
Log "unzip -o $TmpSoft/$1 -d $TmpSoft Complete"
else
GreenChar "Unknown File Type $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/$ ];then
if echo $TmpSoft/$|egrep "(.tar|.tgz)" &> /dev/null;then
tar xzvf $TmpSoft/$ -C $TmpSoft >& > /dev/null|tee -a $LogFile
Log "tar xzvf $TmpSoft/$1 -C $TmpSoft in wget Complete"
elif echo $TmpSoft/$|egrep "(.zip)" &> /dev/null;then
unzip -o $TmpSoft/$ -d $TmpSoft >& > /dev/null|tee -a $LogFile
Log "unzip -o $TmpSoft/$1 -d $TmpSoft in wget Complete"
else
GreenChar "Unknown File Type $1" >& | tee -a $LogFile
fi
else
RedChar "Unknown or Not find $1" >&|tee -a $LogFile #安装包未知或者没有发现,标记红色
RedBGChar "Please Manual Download $1" >&|tee -a $LogFile #请手动下载此安装包,标记红框
exit
fi Log "wget $1 Prepare <---------------"
fi [ $? -eq ] && GreenChar "<< $1 >> Software Prepare :" >&|tee -a $LogFile|| RedChar "<< $1 >> Software Prepare :" >&|tee -a $LogFile
#若上一步安装包寻找成功,则显示 installpack Software Prepare:标记为绿色
#若寻找失败,则显示 installpack Software Prepare:标记为红色
}

shell脚本判断安装包位置及类型的更多相关文章

  1. Shell脚本 判断

    #Linux系统Shell脚本判断变量文件目录:权限.是否存在.空值.相等 1.字符串判断 str1 = str2 当两个串有相同内容.长度时为真str1 != str2 当串str1和str2不等时 ...

  2. Linux shell脚本判断服务器网络是否可以上网

    Linux shell脚本判断网络畅通 介绍 在编写shell脚本时,有的功能需要确保服务器网络是可以上网才可以往下执行,那么此时就需要有个函数来判断服务器网络状态 我们可以通过curl来访问 www ...

  3. shell 脚本——判断条件

    在之前的shell语言学习笔记中已经写过shell的几种判断语句及循环语句,也简单的介绍了shell语言判断语句和判断条件.在此再做进一步学习. test命令的测试功能 test命令用于检测系统文件及 ...

  4. shell脚本编写规范和相关变量类型

    shell编程规范与变量    一.shell脚本概述    ① 什么是shell? Linux中有哪些shell?    ② shell的作用   ③ 用户的登录shell    ④ shell脚本 ...

  5. 编写SHELL脚本--判断用户的参数

    测试语句格式: [ 条件表达式 ] 常见的几种形式: [ -d /etc ]  判断/etc是不是一个目录类型, [ -e /etc/php.ini ] 判断/etc/php.ini 文件是否存在 [ ...

  6. shell脚本判断文件类型

    转自:http://www.cnblogs.com/sunyubo/archive/2011/10/17/2282047.html 1. shell判断文件,目录是否存在或者具有权限 2. #!/bi ...

  7. shell脚本判断语句和循环语句

    if判断语句 exit跳出判读语句 不加exit的结果 read -n(不换行) 判断是否输入的是数字 read age[[ $age =~ ^[0-9]+$ ]]if [ $? -ne 0 ]; t ...

  8. 【原】Shell脚本-判断文件有无进而复制

    2016年7月5日某同学在群上求助要编一个判断文件或目录在某路径下有无进而有的就复制粘贴到另一路径下,无的则将代码中断(不往下执行命令)的脚本.逐一完善.模板如下(生产环境可用到路径环境变量) --- ...

  9. shell脚本判断执行用户

    在脚本中,判断执行者是否为root. 判断方法1, #!/bin/bash if [ `whoami` != "root" ];then echo " only root ...

随机推荐

  1. Intel收购半导体设计公司eASIC

    来源:本文由公众号 半导体行业观察(ID:icbank)翻译自「anandtech」,谢谢. 北京时间今天凌晨,Intel宣布收购了半导体设计公司eASIC. eASIC的商业模式介于传统Fables ...

  2. 前后端token机制 识别用户登录信息

    Token,就是令牌,最大的特点就是随机性,不可预测.一般黑客或软件无法猜测出来. 那么,Token有什么作用?又是什么原理呢? Token一般用在两个地方: 1)防止表单重复提交. 2)anti c ...

  3. MATLAB常用函数(不定时更新)

    1.pause 一般情况下pause(a)表示程序暂停a秒后继续执行,但有时候也存在这种情况,程序中只有pause:并没有参数a,这样的意思是程序暂停,按任意键程序继续执行.2.uiwait(h,ti ...

  4. Xshell利用lrzsz工具上传下载

    直接安装这个lrzsz工具 yum install lrzsz 上传 rz 下载 sz

  5. Linux进程管理的学习

    uptime 简洁显示服务器负载 uptime 显示内核版本 uname -r dstat命令 cpu.内存.io等查看工具 dstat dstat --top-cpu dstat --top-io ...

  6. 下载网站js css img 资源

  7. MySQL数据库(2)

    上一篇我们讲述过MySQL创建数据库,数据表的内容,其中涉及到了几个约束: NOT NULL   非空约束 PRIMARY KEY   主键约束 UNIQUE KEY    唯一约束 其实还有两个约束 ...

  8. 当你的layui表格要做全选+删除功能【兼容ie8】

    <!-- 全选 --> <div class="choose"> <input type="checkbox" id=" ...

  9. 小白的python之路Linux部分10/27&28

     用户 创建流程模拟 总代码 [root@localhost ~]# vim /etc/passwd #1 [root@localhost ~]# mkdir /home/rose [root@loc ...

  10. Python小札

    在Python中,等号(=)是赋值语句,可以把任意数据类型赋值给变量,同一个变量可以反复赋值,而且可以是不同类型的变量如: a = 123 #a是整数 print(a) a = 'ABC' #a变为字 ...