У меня есть функция bash, которая вызывает команду curl для выполнения некоторой операции jenkins (удалить отложенные проекты)
function get_data {
local user="${1}" # user
local api_token="${2}" # token
local http_method="${3}" # POST
local rest_call_url="${4}"
local other_curl_opt="${5}" # -H "Content-Type:application/json" -H "X-Api:asdhds890asd"
# encode space characters
rest_call_url=$(echo "$rest_call_url" | sed 's/ /%20/g')
# gets data
data=$(curl -u ${user}:${api_token} -k -s ${other_curl_opt} -X $http_method "${rest_call_url}")
return_status=$?
if [[ "${data}" = *"HTTP Status 404"* ]] || [[ "${data}" = *"HTTP ERROR 404"* ]] || [[ "${data}" = *"Bad parameter"* ]] || [ $return_status -ne 0 ]
then
print_log ${job_name} ERROR "Curl command failed"
else
print_log ${job_name} INFO "Curl command successful"
fi
}
эта функция вызывается еще в одной функции после передачи необходимых параметров
это вызов функции
jenkins_operation_url=https://${jenkins_instance}/shelvedProjects/manageShelvedProject/
opts="--data \"projects=${job_name}\" --data \"delete=\""
get_data "${jenkins_user}" "${api_token}" "POST" "${jenkins_operation_url}" "${opts}"
Теперь проблема заключается в том, что при вызове этой функции к вызову curl добавляются некоторые дополнительные символы
пример данных
curl -u user:xxxxxxxxxxxxxxx -k -s --data '"projects=xxxxa"' --data '"delete="' -X POST https://xxxxxxxx/shelvedProjects/manageShelvedProject/
+ data='Bad parameter. Should be '\''unshelve'\'' or '\''delete'\'' only.'
Я не уверен, откуда эти дополнительные символы (одинарные кавычки) добавляются
--data '"projects=xxxxa"' --data '"delete="'
Может кто-нибудь, пожалуйста, помогите исправить мой код