Нет, нет никаких доказательств того, что она неправильно читает переменную. Существует доказательство того, что вы не следуете спецификациям для параметров curl и синтаксиса оболочки.
Во-первых, синтаксис для заголовка HTTP, в основном указанный в curl с использованием -H/--header
, требует двоеточия между название и значение заголовка. Вы сделали это правильно для -H "accept: application/json"
, но не для -H "X-auth-access-token ...
. По общему признанию, curl может быть более полезным, давая сообщение об ошибке, а не просто игнорируя плохой элемент.
Во-вторых, похоже, что вы пытаетесь включить двойные кавычки в значение заголовка, как требуется для некоторых значений заголовка или частей в HTTP, но используемый вами синтаксис не выполняется sh это.
-H "X-auth-access-token "${tokenkey}""
# ^ ^ these marks are NOT part of the data
# ^--------------------^ instead this part is quoted _to the shell_
# ^---------^ this is NOT quoted, which for a variable value
# is USUALLY unsafe, but for THIS value works
# ^^ and this is quoted, but empty
Для этого значения (в формате UUID) вам на самом деле не нужно отправлять кавычки в заголовке, но когда они вам нужны или вам нужны, вы должны использовать
-H "X-auth-access-token: \"${tokenkey}\""
# this sends the name WITH the colon, then the value WITH quotemarks around it
FYI Ваш процесс анализа токена по ответу в первой команде может быть намного проще, но вы не спрашивали об этом (или не приводите пример данных, которые понадобятся)