Есть простой get запрос к API Битрикса:
curl -H "Content-Type: application/json" -d '['$taskid',{"TAGS":"'$oldtag',камера_1_off"}]' https://????.bitrix24.ru/rest/66/??????/task.item.update
в качестве параметра $oldtag передается строка в которой слова разделяются запятой, между словами могут быть пробелы например: тег1, еще тег, тег два . Задача к параметру oldtag дописать фразу - ,камера_1_off.
Так вот проблема в том что в bash скрипте почему то не корректно передается пробел через переменную $oldtag. Curl воспринимает как разделитель. Хотя если в терминале в ручную вбить тест в поле "TAGS":"тег один, тег два" - то все работает. Вопрос как передать текст внутри скрипта баша.
Весь скрипт целиком:
#!/bin/bash
taskid="$2"
#Парсит существующие теги
oldtag="$(curl -H "Content-Type: application/json" -d '[17267]' https://?????????.bitrix24.ru/rest/66/????????/task.item.getdata | jq -c '.result.TAGS' | sed s/\"//g | sed s/\\[//g | sed s/\]//g)"
#oldtag=тег, новый тег, еще тег
#записывает старый тег+новый
curl -H "Content-Type: application/json" -d '['$taskid',{"TAGS":"'$oldtag',камера_1_off"}]' https://????.bitrix24.ru/rest/66/??????/task.item.update
Так выглядит ошибка.
А вот так выглядит если передавать текст тегов, без пробелов. все работает:
Принципе в CURL можно экранировать символы добавляя "\" sedом перед символом, но может есть более простое решение ?