у вас возникли проблемы с процессом расширения оболочки, более подробную информацию смотрите в руководствах по bash и руководствах по оболочке posix.синтаксические кавычки обрабатываются до раскрытия переменных, поэтому кавычки внутри переменных являются буквальными.В случае эха переменные разделяются, но из-за того, что эхо соединяется пробелом, этого не видно.
измените echo $curl_string_complete
на printf "<%s>\n" $curl_string_complete
, чтобы увидеть, как аргументы разделяются.
длярешить проблему, вы можете использовать массивы, например:
curl_string_part1_=( -X PUT https://api.secretkgbwebsite.com/api/v4.1/user/$username )
curl_string_part2_=(-H "Authorization: bearer 00000000-4cd9-4bc6-90da-5d43a155f30e" -H "Cache-Control: no-cache" -H "Content-Type: application/json" -H "Postman-Token: 351e4bf1-04a2-4c99-8a21-21a05f51244a" -d )
curl_string_part3_='{"password": "'
curl_string_part4_='"}'
curl_string_complete=( "${curl_string_part1_[@]}" "${curl_string_part2_[@]}" "$curl_string_part3_$rand$curl_string_part4_" )
curl "${curl_string_complete[@]}"