linux中用shell指令碼自動管理版本號

2021-10-23 17:22:08 字數 4979 閱讀 4292

為了統一管理版本,在編譯之前呼叫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 分 時 日 月 周 命令...