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 ...
随机推荐
- Boxes and Balls UVALive - 7500(练习赛爆零)
原因: 自身: 1.自己并没有考虑过精度所带来的问题. 2.一定要自己读题,独立思考,末被队友带偏(矛盾出真理). 3.加强自身基础,提高自身实力. 队伍: 1.队友缺乏独立思考,需要加强. 题目描述 ...
- Lambd Expression
“Lambda 表达式”(lambda expression)是一个匿名函数,Lambda表达式基于数学中的λ演算得名,直接对应于其中的lambda抽象(lambda abstraction),是一个 ...
- js vue 在页面中将摄像头放在一个标签里展示,(模仿手机拍照功能)
1.HTML <video id="video" autoplay class="fileImg"></video> <canva ...
- Educational Codeforces Round 5F. Expensive Strings
题意:给n个串ti,ps,i是s在ti中出现的次数,要求找到s,使得\(\sum_{i=1}^nc_i*p_{s,i}*|s|\)最大 题解:sam裸题,每次插入时相当于在fail链上到1的位置加ci ...
- Headless Service 和Service
定于spec:clusterIP: None 还记得Service的Cluster IP是做什么的吗?对,一个Service可能对应多个EndPoint(Pod),client访问的是Cluster ...
- web页面锁屏初级尝试
因为工作需要,所以在网上找了一些素材来弄这个功能.在我找到的素材中,大多都是不完善的.虽然我的也不是很完善,但是怎么说呢.要求不是很高的话.可以直接拿来用的[需要引用jQuery].废话不多说直接上代 ...
- 关于HttpClient上传中文乱码的解决办法
使用过HttpClient的人都知道可以通过addTextBody方法来添加要上传的文本信息,但是,如果要上传中文的话,或还有中文名称的文件会出现乱码的问题,解决办法其实很简单: 第一步:设置Mult ...
- angular学习笔记(3)
一.angular的核心 1.组件 2.指令 3.服务 4.依赖注入
- 【Jquery+Express.js】 submit() 方法提交form
前端页面 .html 生成一个动态模块 Modal <div class="modal fade" id="addStaff" tabindex=&quo ...
- ldap 导出、导入ldif数据
ldap 导出.导入ldif数据有如下方式: 1.dsadm(速度快,需要停止ldap实例) 2.dsconf(速度慢,需要保持ldap实例开启) windows导出.导入需要加上参数--unsecu ...