Символ, на который жалуется ошибка, является escape-кодом ASCII.Вы хотите избежать этого или удалить его?
Я предполагаю, что виновником является $testRESULT
.
Чтобы удалить это \27
символ:
testRESULT="${testRESULT//$'\27'/}"
вместо этого вместо этого (это будет оболочкой экранировать всю строку):
printf -v testRESULT '%q' "$testRESULT"
или экранировать только экранирование ASCII:
ascii_esc='\27' # literal (change to the form that is expected)
testRESULT="${testRESULT//$'\27'/$ascii_esc}"
Тогда я разбью эту длинную строку JSONв массив и используйте переменную массива в команде curl
.Это сделает вещи более читабельными и понятными.И не забывайте указывать в кавычках свои переменные.
jsonstring=(
'{"body":"'
"$testRESULT"
'- SauceLabs results available at '
"\n$sauceLabsURL"
'"}'
)
curl -X POST -u "$JIRATOKEN" -H Content-Type:application/json --data "${jsonstring[@]}" https://EXAMPLEURL
Но, в конечном итоге, вы должны рассмотреть возможность работы с JSON с использованием таких инструментов, как библиотеки в Python и т. Д.