為了統一管理版本,在編譯之前呼叫shell指令碼將版本號進行解析然後以jason 檔案的格式儲存。
指令碼原始碼:
#/bin/bash
# find current dir
cd..
version_dir=
`pwd
`echo
$version_dir
# version file dir
version_file_dir=
"$/bin/version"
# find the version number and assign
if[ -f $];
then
echo
"$ exist"
else
echo
"$ not exist"
fiufnncm_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 $];
then
echo
"$nupservice_version_dir exist"
else
echo
"$nupservice_version_dir not exist"
finupservice_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 $];
then
echo
"$modbusservice_version_dir exist"
else
echo
"$modbusservice_version_dir not exist"
fimodbusservice_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 $];
then
echo
"$onyxsyncclockservice_version_dir exist"
else
echo
"$onyxsyncclockservice_version_dir not exist"
fionyxsyncclockservice_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 $];
then
echo
"$serialportsynccolckservice_version_dir exist"
else
echo
"$serialportsynccolckservice_version_dir not exist"
fiserialportsynccolckservice_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 $];
then
echo
"$sntpsyncclockservice_version_dir exist"
else
echo
"$sntpsyncclockservice_version_dir not exist"
fisntpsyncclockservice_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 $];
then
echo
"$crtprinter_version_dir exist"
else
echo
"$crtprinter_version_dir not exist"
ficrtprinter_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 $];
then
echo
"$peripheraldevicemanage_version_dir exist"
else
echo
"$peripheraldevicemanage_version_dir not exist"
fiperipheraldevicemanage_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 $];
then
echo
"$ exist"
else
echo
"$ not exist"
fijq '.[1].version="'
$'"'
$| sponge $
jq '.[2].version="'
$'"'
$| sponge $
jq '.[3].version="'
$'"'
$| sponge $
jq '.[4].version="'
$'"'
$| sponge $
jq '.[5].version="'
$'"'
$| sponge $
jq '.[6].version="'
$'"'
$| sponge $
jq '.[7].version="'
$'"'
$| sponge $
jq '.[8].version="'
$'"'
$| sponge $
將修改的儲存的,需要安裝moreutils 包,使用apt-get install moreutils, 安裝後,使用指令 sponge 命令儲存到磁碟。
可以正常執行,在呼叫shell指令碼自動更新版本號到文件。
在linux下shell指令碼中if中用到or怎麼寫
在使用 cs2的測試程式demo squeezenet download convert run.sh時,一旦新增 d myraid 總是出現錯誤 demo squeezenet download convert run.sh 第 54 行 引數太多 其中第 4行 如下 if target myri...
shell指令碼中用到的計算
在shell指令碼中計算一般會涉及到let bc 另擴充套件expr 其中let 都是用來做基本整數運算,bc可以用來做浮點運算。1 let 因為這三個基本等價,所以放在一起說明。首先來看下let命令 xf xuexi num 10 xf xuexi echo num 10 xf xuexi let...
通過shell指令碼實現linux開機自啟動
1.windows格式轉化 windows編輯下的sh指令碼直接放在linux伺服器會出現格式轉換問題,所以需要轉換一下格式 轉換後執行就沒有問題了 windows格式轉換linux格式 命令 sed i s r test.sh 2.linux定時指令碼配置 command 分 時 日 月 周 命令...