Когда я бегу
jq --arg md "blablabla" '. + = {'content': "$md"}' blog.json
в blog.json
{
"foo": "bar"
}
я получил
{
"foo": "bar",
"content": "$md"
}
Желаемый результат будет:
{
"foo": "bar",
"content": "blablabla"
}
Не заключайте переменную в кавычки, если хотите, чтобы она была вычислена.
Кстати, кавычки вокруг content
не верны. Они соответствуют кавычкам, которые используются для разделения всего аргумента jq
.
Обратите внимание, что в этом случае ваш фильтр можно упростить до .content = $md
.
Использование " вокруг $md
приводит к тому, что JQ интерпретирует ваш ввод как строковый литерал вместо расширения переменных.
Доступ к переменной напрямую без кавычек
jq --arg md "blablabla" '. + {"content": $md}' blog.json
выход
{
"foo": "bar",
"content": "blablabla"
}
Попробуйте это
jq --arg md "blablabla" '. + {content: $md}'