linux 脚本 写更新,用Shell写的游戏客户端更新脚本

#!/bin/sh

##########################################

# 客户端版本更新系统

##########################################

# CLIENT_INIT_VERSION 客户端新版本,默认是0

# CLIENT_OLD_VERSION  客户端旧版本(存放在VERSION_FILE指定的文件中),当没有时取CLIENT_INIT_VERSION

# CLIENT_NEW_VERSION  客户端新版本,www.linuxidc.com默认是CLIENT_OLD_VERSION+1

# VERSION_FILE        存放上次版本的文件

CLIENT_INIT_VERSION='0'

CLIENT_OLD_VERSION='0'

CLIENT_NEW_VERSION=''

VERSION_FILE='client_version.txt'

# CLIENT_BASE_PATH    放置前端的目录

# VERSION_CONFIG_FILE 服务器前端版本配置文件

# SVN_PATH            前端SVN地址

CLIENT_BASE_PATH='/data/ylzj_test/img/'

VERSION_CONFIG_FILE='/data/ylzj_test/sljweb/version.jsp'

SVN_PATH='http://192.168.14.138:8080/svn/slj_release/ylzj'

CLIENT_NEW_PATH=''

CLIENT_OLD_PATH=''

#更新是否成功

IF_SUCC=''

initVersionFileIfNoExist(){

if [ -f $VERSION_FILE ];then

echo '[INFO] Welcome to use Client Update System.'

else

echo '[INFO] Welcome to use Client Update System.'

echo $CLIENT_INIT_VERSION > $VERSION_FILE

if [ -f $VERSION_FILE ];then

echo '[SUCC] CREATE VERSION FILE '$VERSION_FILE

else

echo '[FAIL] CREATE VERSION FILE '$VERSION_FILE

fi

fi

}

initClientNewVersion(){

CLIENT_OLD_VERSION=$(cat $VERSION_FILE)

echo "[INFO] The old client version is : "$CLIENT_OLD_VERSION

CLIENT_NEW_VERSION=$(expr $(cat $VERSION_FILE) + 1)

echo '[INFO] The new client version is : '$CLIENT_NEW_VERSION

CLIENT_NEW_PATH=$CLIENT_BASE_PATH$CLIENT_NEW_VERSION

CLIENT_OLD_PATH=$CLIENT_BASE_PATH$CLIENT_OLD_VERSION

}

checkIfFileExistAndDoSomething(){

tmpvar=$1

subpath=${tmpvar%/*}

existFile=${tmpvar##*/}

TMP_BACKUP_FLASH_TAR=''

if [ -f $1 -o -d $1 ];then

echo '[WARN] Flash dir '$1' has exists, it will be tar and backup.'

TMP_BACKUP_FLASH_TAR=$existFile'.tar'

cd $subpath

echo '[INFO] Archieving '$existFile' to '$TMP_BACKUP_FLASH_TAR

tar -zcvf $TMP_BACKUP_FLASH_TAR $existFile

echo '[INFO] Removing dir '$existFile

rm -rf $existFile

cd -

fi

unset tmpvar

unset subpath

unset existFile

unset TMP_BACKUP_FLASH_TAR

}

prepareClientDir(){

checkIfFileExistAndDoSomething $CLIENT_NEW_PATH

if [ $CLIENT_INIT_VERSION -eq $CLIENT_OLD_VERSION ];then

#第一次使用

#创建目录

echo '[INFO] First create the flash dir '$CLIENT_NEW_PATH

mkdir -p $CLIENT_NEW_PATH

else

#非第一次使用,修改flash名字

echo '[INFO] Copying '$CLIENT_OLD_PATH' to '$CLIENT_NEW_PATH

mv $CLIENT_OLD_PATH $CLIENT_NEW_PATH

fi

if [ -d $CLIENT_NEW_PATH ];then

IF_SUCC='TRUE'

fi

}

storeThisVersionIfSucc(){

if [ -n $IF_SUCC ]; then

echo $CLIENT_NEW_VERSION > $VERSION_FILE

echo "" > $VERSION_CONFIG_FILE

fi

}

createClient(){

echo '[INFO] Checking out flash version...'

svn co $SVN_PATH $CLIENT_NEW_PATH --username=bqli --password=123456

echo '[INFO] Checking out has finished.'

}

updateClient(){

echo '[INFO] Updating flash version...'

svn update $CLIENT_NEW_PATH

echo '[INFO] Updating has finished.'

}

createOrUpdateClient(){

if [ $CLIENT_INIT_VERSION -eq $CLIENT_OLD_VERSION ];then

createClient

else

updateClient

fi

}

echoStartInfo(){

echo '#################################################'

echo '# 欢迎使用客户端版本更新系统V1.0'

echo '#################################################'

}

echoEndInfo(){

echo '[SUCC] Finished.'

}

clear

echoStartInfo

initVersionFileIfNoExist

initClientNewVersion

prepareClientDir

createOrUpdateClient

storeThisVersionIfSucc

echoEndInfo

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/277349.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android Studio 环境搭建参考,jdk10javac命令提示不是内部或外部命令

https://blog.csdn.net/qq_33658730/article/details/78547789 win10下Android Studio和SDK下载、安装和环境变量配置 http://yanmin99.com/ android-0基础从入门到精通 环境变量ANDROID_HOMEE:\Program Files (x86)\Android\SdkJAVA_HOMEE:\Program Files\Java\jdk1.8.0_161TO…

报表引擎 - 数据模型

介绍 本文档是报表模型的数据模型部分,说明平台报表中涉及的报表数据相关 术语 名称 说明 数据源 数据源是与数据存储的连接。支持数据源适配 数据集 定义报表数据来源的一个二维表 参数 报表往往有参数,例如,日报表,当…

linux 删旧内核,Ubuntu 删除旧内核的方法

使用Ubuntu时如果系统里安装了很多内核,会造成多于的启动列表。想删掉一些不用的内核方法如下方法一:首先就是使用如下命令,列出所有安装的内核,下表中,带有p_w_picpath的就是内核文件。从中选择要卸载的包&#xff0c…

L2-014 列车调度(队列模拟:set)

题意: 两端分别是一条入口(Entrance)轨道和一条出口(Exit)轨道,它们之间有N条平行的轨道。每趟列车从入口可以选择任意一条轨道进入,最后从出口离开。在图中有9趟列车,在入口处按照{…

新架设了一个CVS服务器 --by yp

cvs是个代码管理的好东东,全称并发版本控制。不知道的上网查一下资料。 我下载了相关的部分资料和软件,包括架设服务器的软件和使用服务的客户端软件,都是windows平台下可用的, 其他平台下的我都没下载,因为不会用。在…

@hdu - 6372@ sacul

目录 descriptionsolutionaccepted codedetailsdescription 定义矩阵 \(A_i\) 是一个大小为 \(p^i*p^i\) 的矩阵,其中 \(p\) 是第 \(c\) 个素数(c 给定),且 \(A_i[x][y] [C(x, y) \mod p > 0]\)(其中 C(x, y) 是组…

实验室里人越来越少啊!

研二下半学期了。研三的师哥师姐们都忙着找工作,有的已经去工作了。只是偶而来实验室转转。研一的师弟师妹,现在还都有课,实验室也没他们的机器,所以几乎不来实验室。我们研二的有四个人,两个北京的。其中一个在外面打…

在一台机器上搭建多个redis实例

默认Redis程序安装在/usr/local/redis目录下; 配置文件:/usr/local/redis/redis.conf,该配置文件中配置的端口为默认端口:6379; Redis的启动命令路径:/usr/local/bin/redis-server。 可以指定端口启动多个R…

2年前 影子

1. 请问您知道 xxxx吗 ? 麻烦了您? 2. 您在公司待了多长时间了? 3. 您觉得公司怎么样? 。。。。。。 待续! 转载于:https://www.cnblogs.com/nucdy/p/11151470.html

linux是只读添加 来覆盖,Linux之指令 重定向 文件覆盖和文件追加

CXF支持 SOAP1.1 SOAP1.2协议SOAP协议分为两个版本 1.1 1.2 默认支持1.1 实现方式: 1.编写接口 import javax.jws.WebService; WebService public inte ...USACO Section 2.4: Bessie Come Home因为题目给了边的信息,所以比较…

分层架构web容器的配置安全

转自:http://hi.baidu.com/shineo__o/item/7520d54c24d234c71081da82 /ps:本以为这是一个偶然配置失误造成的问题,但最近几天无聊时测试发现,有此类似问题的站点就有上百个,所以在这里粗糙总结一下! 通常我们会碰到这样…

Jenkins-Gitlab配置方法

1)本机首先安装好git软件2)然后安装gitlab插件,在可选插件中查找gitlab,点击直接安装3)然后进入系统管理-系统设置 首先进入Gitlab中复制需要的 token 值在 Profile Settings - Account把复制的值,复制到新增页面中转载于:https:…

高速缓冲存储器的功能、结构与工作原理

2.3 高速缓冲存储器(Cache) 2.3.1 高速缓冲存储器的功能、结构与工作原理   高速缓冲存储器是存在于主存与CPU之间的一级存储器, 由静态存储芯片(SRAM)组成,容量比较小但速度比主存高得多, 接近于CPU的速度。 Cache…

洛谷 P1417 烹调方案 (01背包拓展)

一看到这道题就是01背包 但是我注意到价值和当前的时间有关。 没有想太多,直接写,0分 然后发现输入方式不对…… 改了之后只有25分 我知道wa是因为时间会影响价值,但不知道怎么做。 后来看了题解,发现我对01背包理解不够透彻普通0…

LeetCode 77.组合求和

给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的数字可以无限制重复被选取。 说明: 所有数字(包括 target)都是正整数。解集不能包含重复的组合…

18函数对象19command模式20函数对象在STL中的应用

Item 18. Function ObjectsItem 19. Commands and HollywoodItem 20. STL Function Objects1、unction Objects是什么函数对象听起来挺吓人,其实并不神秘,它也是一个类的对象,只不过该类重载了操作符(),使得对象使用以来跟函数一样。class Fi…

linux df命令功能,Linux df命令简要介绍

日常工作生活中,我们常需要查看系统当前的磁盘空间使用情况。在windows下,只需简单点击我的电脑,就看到带进度条的系统磁盘使用情况,非常直观。那linux命令行下如何实现同样的功能呢?这就是我们今天要介绍的df命令。df…

spring集成RabbitMQ配置文件详解(生产者和消费者)

1&#xff0c;首先引入配置文件org.springframework.amqp&#xff0c;如下&#xff1a; <dependency><groupId>org.springframework.amqp</groupId><artifactId>spring-rabbit</artifactId><version>1.7.1.RELEASE</version></de…

一天的学习成果:hash输出,dcache工作原理,include的home directory,fist optype的含义...

最先获得突破的是解决了下午的崩溃问题。其实原因很简单&#xff0c;我声明了一个unsigned int型指针&#xff0c;但是没有给它分配空间…… 解决了这个问题之后就很简单了&#xff0c;调用定义在linux/dcache.c文件中的full_name_hash函数对文件名进行hash计算。这里发现了一个…

linux显示fio为非法指令,FORTRAN运行错误消息列表中英对照.doc

FORTRAN运行错误消息列表中英对照Fortran的运行时错误消息列表本节列出了英特尔Fortran运行时库(RTL)处理的错误。对于每一个错误&#xff0c;该表提供了错误号&#xff0c;严重性代码&#xff0c;错误信息文本&#xff0c;条件符号名称&#xff0c;而错误的详细说明。在程序中…