Я пишу Баш скрипт, который образуют JSon файл:Строка форматирования с Bash
#!/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] }
ДАТА был установлен, но версия нет, я не могу понять почему. Пожалуйста, помогите мне с этой двусмысленностью.
Возможно, есть более красивый способ сделать это, сценарий выполняется на сервере агента сборки в TeamCity.
Я вижу '[14:09:26] [Шаг 4/4] ВЕРСИЯ: 003.09'. Итак, что это значит, что VERSION не была установлена? Кроме того, знаете ли вы ['jq'] (https://stedolan.github.io/jq/)? Это инструмент для разбора JSON в сценариях оболочки. Это может быть более полезным для вас, чем этот сценарий, который вы написали. – fedorqui
Я не могу использовать jq, потому что я не могу установить его на сервере. Я имею в виду «версия»: «_ VERSION_» во второй строке. Ближе к настоящему времени. –
ОК, я вижу. Попробуйте упростить свой пример, а также предоставить [mcve] содержимое 'product.info.json' – fedorqui