Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1255716
  • 博文数量: 261
  • 博客积分: 4196
  • 博客等级: 上校
  • 技术积分: 3410
  • 用 户 组: 普通用户
  • 注册时间: 2012-02-17 17:05
文章分类

全部博文(261)

文章存档

2018年(1)

2017年(22)

2016年(2)

2015年(8)

2014年(27)

2013年(40)

2012年(161)

分类: 嵌入式

2013-12-07 15:12:44

准备文件:脚本文件 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




阅读(3217) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~