[Unix]shell编程珠玑(4)-- 读取属性文件和访问CVS

    技术2026-05-16  9

    1  读取属性文件 

        属性文件名为:config.prop

        内容为:CVSROOT="aaa"

        在Shell 中调用:

                 CVSROOT=`grep "CVSROOT" config.prop | cut -f2 -d"=" | tr -d ' "'`

        这样CVSROOT 变量就为aaa 了。

     

    2  访问CVS

       可以参考: 1) 车东先生的  CVS使用手册

                      2) ChinaUnix.net  CVS 中文手册

       项目中要求从CVS 上下载代码,当发现有新的代码变动时,才进行Build。解决的办法挺简单的,就是调用 

               cvs co "${projectName}"> CVSchange.txt    命令checkout 源代码,然后检查CVSchange.txt 是否为空,空就build。但是记住,build 的时候需要在一份源代码的拷贝中完成。这样不会影响本地的cvs 代码。

       当然,应该现在机器上登录cvs (cvs -d :pserver:cvs_user_name@cvs.server.address:/path/to/cvsroot login),然后在自动的执行脚步。

     

    代码如下:

     

    #! /bin/sh ################################# # By Alf lihe2011@gmail.com # ################################# # Get properties from config.prop CVSROOT=`grep "CVSROOT" config.prop | cut -f2 -d"=" | tr -d ' "'` projectName=`grep "projectName" config.prop | cut -f2 -d"=" | tr -d ' "'` shareFolder=`grep "shareFolder" config.prop | cut -f2 -d"=" | tr -d ' "'` export CVSROOT="${CVSROOT}" echo "$CVSROOT" echo "$projectName" echo "$shareFolder" # ping cvs 主机 ping -c 1 9.123.123.12 successPing=`echo $?` if [ ! ${successPing} -eq 0 ];then echo "ping fail." else # check out rft source code cvs co "projectName"> CVSchange.txt # check code change if [ ! -s "CVSchange.txt" ];then echo "OK" else echo "Compile source code.EMail to you" # copy projectName to projectName_TEMP rm -rf projectName_TEMP cp -r projectName/ projectName_TEMP # run compile.sh cd ./projectName_TEMP/ ./compile.sh # zip product.zip zip -r product.zip * #upload zip rm -f "${shareFolder}"/product.zip cp product.zip "${shareFolder}" fi fi

     

     

     

     

     

    最新回复(0)