准备文件:脚本文件 1.sh 2.sh 安装包文件 bag.tgz
制作:cat 1.sh 2.sh bag.tgz > bag.bin
升级时只需运行bag.bin
1.sh
===============================
#!/bin/sh
VERSION=1.0
2.sh
===============================
OBJ_BAG=bag_v$VERSION.tgz
#在机器中/etc/version文件中存放本机程序的版本信息,格式“VERSION=1.0”
#$VERSION为升级包版本,如果升级包版本低于本地,则不升级
lc_major=$(cat /etc/version | awk -F"=" '{print $2}' | awk -F"." '{print $1}')
lc_minor=$(cat /etc/version | awk -F"=" '{print $2}' | awk -F"." '{print $2}')
up_major=$(echo $VERSION | awk -F"." '{print $1}')
up_minor=$(echo $VERSION | awk -F"." '{print $2}')
# 这样写,即使没有版本号存放的文件,也会升级
up=1
if [ $up_major -lt $lc_major ];then
up=0
elif [ $up_major -eq $lc_major ];then
if [ up_minor -gt lc_minor ];then
up=1
else
up=0
fi
fi
fi
install_dir=/tmp/hello
#将升级包从bin文件中分离出来放到指定位置
sed -n '1,/^exit 0$/!p' $0 > ./$OBJ_BAG
if [ up -eq 1 ];then
install_dir=/tmp/hello
if [[ -e $install_dir ]];then
rm -rf $install_dir && make $install_dir
else
mkdir $install_dir
fi
cd $install_dir &&cp ./$OBJ_BAG $install_dir&& tar zxf $OBJ_BAG
fi
阅读(3200) | 评论(0) | 转发(0) |