我写bash脚本形成JSON文件:字符串猛砸
#!/bin/bash
json_string=$(<product.info.json)
echo "$json_string"
vers=%major_version%.%patch_version%
date=`date +%%Y-%%m-%%d:%%H:%%M:%%S`
echo VERSION: $vers
echo DATE: $date
result_string=$json_string
result_string=${result_string/_DATE_/$date};
result_string=${result_string/_VERSION_/$vers};
echo "$result_string" > "User_Part/product.info.json"
json_string=$(<User_Part/product.info.json)
echo "$json_string
它的控制台进行:
[14:09:26][Step 4/4] {
[14:09:26][Step 4/4] "release":{
[14:09:26][Step 4/4] "version":null
[14:09:26][Step 4/4] },
[14:09:26][Step 4/4] "product":{
[14:09:26][Step 4/4] "group":"CMS",
[14:09:26][Step 4/4] "name":"CMS_prod",
[14:09:26][Step 4/4] "version":"_VERSION_"
[14:09:26][Step 4/4] },
[14:09:26][Step 4/4] "application":{
[14:09:26][Step 4/4] "name":"OAPI",
[14:09:26][Step 4/4] "appl_id":"6150",
[14:09:26][Step 4/4] "version":"_VERSION_",
[14:09:26][Step 4/4] "date":"_DATE_",
[14:09:26][Step 4/4] "detail":null,
[14:09:26][Step 4/4] "vcs":{
[14:09:26][Step 4/4] "hash":null,
[14:09:26][Step 4/4] "branch":null
[14:09:26][Step 4/4] },
[14:09:26][Step 4/4] "build":{
[14:09:26][Step 4/4] "number":null,
[14:09:26][Step 4/4] "url":null
[14:09:26][Step 4/4] }
[14:09:26][Step 4/4] }
[14:09:26][Step 4/4] }
[14:09:26][Step 4/4] VERSION: 003.09
[14:09:26][Step 4/4] DATE: 2016-08-23:14:09:26
[14:09:26][Step 4/4] {
[14:09:26][Step 4/4] "release":{
[14:09:26][Step 4/4] "version":null
[14:09:26][Step 4/4] },
[14:09:26][Step 4/4] "product":{
[14:09:26][Step 4/4] "group":"CMS",
[14:09:26][Step 4/4] "name":"CMS_prod",
[14:09:26][Step 4/4] "version":"003.09"
[14:09:26][Step 4/4] },
[14:09:26][Step 4/4] "application":{
[14:09:26][Step 4/4] "name":"OAPI",
[14:09:26][Step 4/4] "appl_id":"6150",
[14:09:26][Step 4/4] "version":"_VERSION_",
[14:09:26][Step 4/4] "date":"2016-08-23:14:09:26",
[14:09:26][Step 4/4] "detail":null,
[14:09:26][Step 4/4] "vcs":{
[14:09:26][Step 4/4] "hash":null,
[14:09:26][Step 4/4] "branch":null
[14:09:26][Step 4/4] },
[14:09:26][Step 4/4] "build":{
[14:09:26][Step 4/4] "number":null,
[14:09:26][Step 4/4] "url":null
[14:09:26][Step 4/4] }
[14:09:26][Step 4/4] }
[14:09:26][Step 4/4] }
DATE设置,但VERSION不,我不能理解为什么。请帮我解决这个问题。
也许有更美丽的方式来做到这一点,脚本在TeamCity中的构建代理服务器中执行。
我看到了[[14:09:26] [步骤4/4]版本:003.09'。那么这意味着VERSION没有设置?另外,你知道['jq'](https://stedolan.github.io/jq/)吗?它是一个在shell脚本中解析JSON的工具。对你来说,这可能比你写的这个脚本更有用。 – fedorqui
我无法使用jq,因为我无法将其安装在服务器中。我的意思是“版本”:第二行中的“_ VERSION_”。近至今。 –
好的,我明白了。试着简化你的例子,并提供一个[mcve]的内容'product.info.json' – fedorqui