Sua expressão jq
está entre aspas simples. Isso impede que $value
seja expandido pelo shell.
Em vez disso, use aspas duplas:
result=$(jq -c ".docs[0] + { \"value\": \"$value\" }"<<<"$fileContent")
Para adicionar uma propriedade a um texto JSON, consigo usar
result=$(jq -c '.docs[0] + { "value": "someValue" }'<<<"$fileContent")
Mas se eu quiser substituir "someValue" por uma variável:
result=$(jq -c '.docs[0] + { "value": ($value) }'<<<"$fileContent")
Isso me dá
jq: error: value/0 is not defined at <top-level>, line 1:
.docs[0] + { "value": ($value) }
jq: 1 compile error
Eu também tentei sem chaves $value
e dentro de parênteses [$value]
sem sucesso.
Eu sou novo no script, obrigado por mais ajuda!