json="{}"
foo="Without_spaces"
bar="With spaces"
json=$(jq '.one = "Without_spaces"' <<< $json)
json=$(jq '.two = "With spaces"' <<< $json)
json=$(jq '.foo = "'$foo'"' <<< $json)
# json=$(jq '.bar = "'$bar'"' <<< $json)
jq . <<< $json
Скрипт формирует JSON объект. Значения ключей помещаются в переменную, затем добавляются в объект. И вот возникла ситуация, когда в переменной находится строка с пробелами (закомментированная строка). jq выдаёт ошибку
jq: error: syntax error, unexpected $end, expecting QQSTRING_TEXT or QQSTRING_INTERP_START or QQSTRING_END (Unix shell quoting issues?) at <top-level>, line 1:
.bar = "With
jq: 1 compile error
Если значение с пробелом хардкорно записано в коде, то ошибки нет (ключ two)
Как побороть?