Подтвердить что ты не робот

Использование curl в bash script и получение завитка: (3) Недопустимые символы, найденные в URL-адресе

Итак, у меня есть очень простой bash script, который скручивается на сервер auth для заголовка. URL-адрес заголовка записывается в var и затем используется в следующем вызове curl. При использовании var, установленного в первом вызове curl, я получаю "curl: (3) Недопустимые символы, найденные в URL". Я могу повторить var и все выглядит хорошо, я даже могу reset var (в моем примере ниже), и он работает.

bash script

URL=$(curl -i -X GET -H "X-Auth-User: MyUserna,e" -H "X-Auth-Key: MyAPIKey" "https://urlToAuthServer.tld/auth/v1.0/" | grep "X-Storage-Url:" | awk '{print $2}')

curl -X GET -H "X-Auth-Token: MyAuthTok" "${URL}/folder/myfile.txt" -o ./myfile.txt

При выполнении приведенного выше примера я получаю:

curl: (3) Illegal characters found in URL

URL-адрес var выглядит так (без незаконных символов)

https://somesecureurl.com/auth/AUTH_67383834-45245453-g34g34t5-34534

Когда я делаю это в терминале, он работает:

$URL = $(curl -i -X ​​GET -H "X-Auth-User: MyUserna, e" -H "X-Auth-Key: MyAPIKey" " https://urlToAuthServer.tld/auth/v1.0/" | grep "X-Storage-Url:" | awk '{print $2}')

$echo $URL

https://somesecureurl.com/auth/AUTH_67383834-45245453-g34g34t5-34534

Теперь я копирую и вставляю строку и перенаправляю ее на URL-адрес (снова все в терминале):

>$ URL="https://somesecureurl.com/auth/AUTH_67383834-45245453-g34g34t5-34534"
>$ curl -X GET -H "X-Auth-Token: MyAuthTok" "${URL}/folder/myfile.txt" -o ./myfile.txt

Он работает.

Итак, почему я получаю "curl: (3) Недопустимые символы, найденные в URL-адресе" ошибка в первом примере?

Обновление Я запустил это: printf %s "$URL" | xxd

Вот результат (исправленный измененный, вы получите идею)

0000000: 6874 7470 733a 2f2f 6461 6c30 352e 6f62  https://server.ob
0000010: 6a65 6374 7374 6f72 6167 652e 736f 6674  jectstorage.lite
0000020: 6c61 7965 722e 6e65 742f 7631 2f41 5554  sabers.com/v1/AUT
0000030: 485f 6665 3235 3339 3434 2d38 6433 322d  H_aE2563981-7d32-
0000040: 3432 3138 2d61 6566 632d 6665 6638 3465  4201-bdoi-fef94a
0000050: 6166 3331 6232 0d                        ag11c8.
4b9b3361

Ответ 1

URL-адрес содержит \r (CR) в конце (0d). Удалите его с помощью

URL=${URL%$'\r'}

прежде чем использовать его с помощью curl.