linux中用shell脚本自动管理版本号

	为了统一管理版本,在编译之前调用shell脚本将版本号进行解析然后以jason 文件的格式保存。

脚本源码:

#/bin/bash

# find current dir
cd ..
version_dir=`pwd`
echo $version_dir

# version file Dir
version_file_dir="${version_dir}/bin/version"

# Find the version number and assign 
if [ -f  ${UfnNcm_version_dir} ];then
   
   echo "${UfnNcm_version_dir}  exist"
   
else
   echo "${UfnNcm_version_dir}  not exist"
fi
UfnNcm_versionNumber=`sed -nr '/Version/p'  "$UfnNcm_version_dir" | sed -n '/Version/p' | sed -n 's/const char Version\[\] = //gp' | sed -n 's/;//gp' | sed -n 's/"//gp'`
echo "UfnNcm Version Number:$UfnNcm_versionNumber"

if [ -f  ${NupService_version_dir} ];then
   
   echo "$NupService_version_dir exist"
else
   echo "$NupService_version_dir  not exist"
fi
NupService_versionNumber=`sed -nr '/sysversion/p'  "$NupService_version_dir" | sed -n '/sysversion/p' | sed -n 's/const char sysversion\[\] = "NUPService //gp' | sed -n 's/;//gp' | sed -n 's/"//gp'`
echo "NupService version number: $NupService_versionNumber"

if [ -f  ${ModbusService_version_dir} ];then
   
   echo "$ModbusService_version_dir exist"
else
   echo "$ModbusService_version_dir  not exist"
fi
ModbusService_versionNumber=`sed -nr '/sysversion/p'  "$ModbusService_version_dir" | sed -n '/sysversion/p' | sed -n 's/const char sysversion\[\] = //gp' | sed -n 's/;//gp' | sed -n 's/"//gp'`
echo "ModbusService version number:$ModbusService_versionNumber"

if [ -f  ${OnyxSyncClockService_version_dir} ];then
   
   echo "$OnyxSyncClockService_version_dir exist"
else
   echo "$OnyxSyncClockService_version_dir  not exist"
fi
OnyxSyncClockService_versionNumber=`sed -nr '/sysversion/p' "$OnyxSyncClockService_version_dir" | sed -n '/sysversion/p' | sed -n 's/const char sysversion\[\] = //gp' | sed -n 's/;//gp' | sed -n 's/"//gp'`
echo "OnyxSyncClockService version number:$OnyxSyncClockService_versionNumber"

if [ -f  ${SerialPortSyncColckService_version_dir} ];then
   
   echo "$SerialPortSyncColckService_version_dir exist"
else
   echo "$SerialPortSyncColckService_version_dir  not exist"
fi
SerialPortSyncColckService_versionNumber=`sed -nr '/sysversion/p'  "$SerialPortSyncColckService_version_dir" | sed -n '/sysversion/p' | sed -n 's/const char sysversion\[\] = //gp' | sed -n 's/;//gp' | sed -n 's/"//gp'`

echo  "SerialPortSyncClockService version number:$SerialPortSyncColckService_versionNumber"

if [ -f  ${SNTPSyncClockService_version_dir} ];then
   
   echo "$SNTPSyncClockService_version_dir exist"
else
   echo "$SNTPSyncClockService_version_dir  not exist"
fi
SNTPSyncClockService_versionNumber=`sed -nr '/sysversion/p'  "$SNTPSyncClockService_version_dir" | sed -n '/sysversion/p' | sed -n 's/const char sysversion\[\] = //gp' | sed -n 's/;//gp' | sed -n 's/"//gp'`
echo "Sntpsync version number:$SNTPSyncClockService_versionNumber "

if [ -f  ${CrtPrinter_version_dir} ];then
   
   echo "$CrtPrinter_version_dir exist"
else
   echo "$CrtPrinter_version_dir  not exist"
fi
CrtPrinter_versionNumber=`sed -nr '/sysversion/p'  "$CrtPrinter_version_dir" | sed -n '/sysversion/p' | sed -n 's/const char sysversion\[\] = //gp' | sed -n 's/;//gp' | sed -n 's/"//gp'`
echo "crt version number:$CrtPrinter_versionNumber" 

if [ -f  ${PeripheralDeviceManage_version_dir} ];then
   
  echo "$PeripheralDeviceManage_version_dir exist"
else
  echo "$PeripheralDeviceManage_version_dir  not exist"
fi
PeripheralDeviceManage_versionNumber=`sed -nr '/sysversion/p'  "$PeripheralDeviceManage_version_dir" | sed -n '/sysversion/p' | sed -n 's/const char sysversion\[\] = //gp' | sed -n 's/;//gp' | sed -n 's/"//gp'`
echo "PeripheralDeviceManage version number:$PeripheralDeviceManage_versionNumber"


# Modify the version number in the  version file

if [ -f  ${version_file_dir} ];then
   
   echo "${version_file_dir}  exist"
   
else
   echo "${version_file_dir}  not exist"
fi

jq '.[1].version="'${UfnNcm_versionNumber}'"' ${version_file_dir} | sponge ${version_file_dir}

jq '.[2].version="'${NupService_versionNumber}'"' ${version_file_dir} | sponge ${version_file_dir}

jq '.[3].version="'${ModbusService_versionNumber}'"' ${version_file_dir} | sponge ${version_file_dir}

jq '.[4].version="'${OnyxSyncClockService_versionNumber}'"' ${version_file_dir} | sponge ${version_file_dir}

jq '.[5].version="'${SerialPortSyncColckService_versionNumber}'"' ${version_file_dir} | sponge ${version_file_dir}

jq '.[6].version="'${SNTPSyncClockService_versionNumber}'"' ${version_file_dir} | sponge ${version_file_dir}

jq '.[7].version="'${CrtPrinter_versionNumber}'"' ${version_file_dir} | sponge ${version_file_dir}

jq '.[8].version="'${PeripheralDeviceManage_versionNumber}'"' ${version_file_dir} | sponge ${version_file_dir}

将修改的保存的,需要安装moreutils 包,使用apt-get install moreutils, 安装后,使用指令 sponge 命令保存到磁盘。
可以正常运行,在调用shell脚本自动更新版本号到文档。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值