2016-10-19 10 views
0

Я пишу скрипт bash, используя cURL для вызова API. Я генерирую часть содержимого, преобразующую строки, выходящие из других источников. Из db пробелы заменяются строкой «_SPACE_» по причинам применения. я заменить его с помощьюошибка cURL в пробеле в поле данных

ITEM=${M//_SPACE_/ } 

, а затем я называю Curl следующим образом:

curl ... --data '{"field": "'$ITEM'"}' ... 

Запуск сценария он возвращает исключение на скручивание исполнении

curl: (3) [globbing] unmatched close brace/bracket in column 21 
org.codehaus.jackson.JsonParseException: Unexpected end-of-input in VALUE_STRING 
at [Source: [email protected]; line: 4, column: 139] 

ответ

0

за исключением

org.codehaus.jackson.JsonParseException: Unexpected end-of-input in VALUE_STRING ... 

говорит, что ваш lib из codehouse не может проанализировать объект данных, который отправляется через curl. я мог бы вообразить, что ваш объект --data '{"field": "' $ ITEM '}} не удается из-за одиночных кавычек $ ITEM. может ли отправить полный объект данных или сценарий?

+0

Одинарная кавычка не является проблемой, если я заменяю местозаполнитель пространства другим символом (например, ITEM = $ {M // _ SPACE _/_}), вызов cURL работает нормально –

+0

Вы повторили замену и посмотрели, заменив первый путь? я мог бы порекомендовать протестировать sed. 'sed 's/_SPACE_// g'' –

+0

Конечно, печать правильная –