shell脚本判断安装包位置及类型
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脚本判断安装包位置及类型的更多相关文章
- Shell脚本 判断
#Linux系统Shell脚本判断变量文件目录:权限.是否存在.空值.相等 1.字符串判断 str1 = str2 当两个串有相同内容.长度时为真str1 != str2 当串str1和str2不等时 ...
- Linux shell脚本判断服务器网络是否可以上网
Linux shell脚本判断网络畅通 介绍 在编写shell脚本时,有的功能需要确保服务器网络是可以上网才可以往下执行,那么此时就需要有个函数来判断服务器网络状态 我们可以通过curl来访问 www ...
- shell 脚本——判断条件
在之前的shell语言学习笔记中已经写过shell的几种判断语句及循环语句,也简单的介绍了shell语言判断语句和判断条件.在此再做进一步学习. test命令的测试功能 test命令用于检测系统文件及 ...
- shell脚本编写规范和相关变量类型
shell编程规范与变量 一.shell脚本概述 ① 什么是shell? Linux中有哪些shell? ② shell的作用 ③ 用户的登录shell ④ shell脚本 ...
- 编写SHELL脚本--判断用户的参数
测试语句格式: [ 条件表达式 ] 常见的几种形式: [ -d /etc ] 判断/etc是不是一个目录类型, [ -e /etc/php.ini ] 判断/etc/php.ini 文件是否存在 [ ...
- shell脚本判断文件类型
转自:http://www.cnblogs.com/sunyubo/archive/2011/10/17/2282047.html 1. shell判断文件,目录是否存在或者具有权限 2. #!/bi ...
- shell脚本判断语句和循环语句
if判断语句 exit跳出判读语句 不加exit的结果 read -n(不换行) 判断是否输入的是数字 read age[[ $age =~ ^[0-9]+$ ]]if [ $? -ne 0 ]; t ...
- 【原】Shell脚本-判断文件有无进而复制
2016年7月5日某同学在群上求助要编一个判断文件或目录在某路径下有无进而有的就复制粘贴到另一路径下,无的则将代码中断(不往下执行命令)的脚本.逐一完善.模板如下(生产环境可用到路径环境变量) --- ...
- shell脚本判断执行用户
在脚本中,判断执行者是否为root. 判断方法1, #!/bin/bash if [ `whoami` != "root" ];then echo " only root ...
随机推荐
- blob canvas img dataUrl的互相转换和用处
blob:代表了一段二进制数据 初始化:var blob = new Blob(array,option)//其中array里面可以包含任意类型对象,option指数据类型如array是['<h ...
- 未在本地计算机上注册microsoft.ace.12.0的解决办法
(1)去http://download.microsoft.com/download/7/0/3/703ffbcb-dc0c-4e19-b0da-1463960fdcdb/AccessDatabase ...
- WDA 新SELECT OPTION
感谢肖总的提示,不然还不知道wda的新select option... 使用前提:SE24类:CL_WDR_SELECT_OPTIONS_20 核对了多个版本,ERP系统版本要S4 1701往上,CR ...
- JavaScript前端面试题总结
1.em和rem 像素(px):用于元素的边框或定位. em/rem:用于做响应式页面,em相对于父元素,rem相对于根元素. rem 单位翻译为像素值是由 html 元素的字体大小决定的. 此字体大 ...
- PHP反射学习总结
反射(Reflection) PHP的反射机制提供了一套反射API,用来访问和使用类.方法.属性.参数和注释等,比如可以通过一个对象知道这个对象所属的类,这个类包含哪些方法,这些方法需要传入什么参数, ...
- 7、TypeScript数据类型
1.变量声明 var 不要使用 建议使用: let 变量 const 常量,一旦申明不能修改 2.数据类型 2.1布尔值:boolean 2.2数字类型 :number 2.3字符串类型:strin ...
- mysql 联合表(federated)及视图
1)验证环境 源库:192.168.8.75 centos 7.5 mysql8.3 目标库:192.168.8.68 redhat 6.8 mysql5.7 2)登录源库并创建源表 $ mysql ...
- Oracle根据时间恢复已删除提交的数据
Oracle 根据数据库的时间戳恢复已删除提交的数据 1.选择一个时间点查看表中数据是否是自己想要的数据 Select * from 表名 as of timestamp to_timestamp(‘ ...
- idea crack
ThisCrackLicenseId-{ “licenseId”:”11011”, “licenseeName”:”Wechat”, “assigneeName”:”tree-deep-see-dee ...
- 构建微服务:Spring boot 入门篇
什么是Spring Boot Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而 ...