Передача строки в curl без буквальных двойных кавычек - PullRequest
0 голосов
/ 25 февраля 2019

Я пытаюсь написать сценарий оболочки, который вызывает два API, используя curl.

Один из ключей вывода JSON первого curl передается второму curl.В приведенном ниже скрипте Bash я передаю токен в качестве параметра командной строки первому curl, и он работает нормально.

Выход первого скручивания извлекается в client_token, а я передаю его второмулокон.Это терпит неудачу.

Причина в том, что где бы у меня не было $client_token, значение подставляется как "value" (с кавычками) вместо value (без кавычек).Curl ожидает строки без кавычек во втором curl.Как мне избавиться от двойных кавычек?

echo $1
XVaultToken=`curl -X POST  "https://sub.domain.tld:8200/login"   -d '{"token":"'"$1"'"}'` 
client_token=`echo $XVaultToken|jq '.auth.client_token' 
echo $client_token
apiKey=`curl -X GET https://sub.domain.tld:8200/api-key  -H 'X-Vault-Token: "'"$client_token"'"'`
#apiKey=`curl -X GET https://sub.domain.tld:8200/api-key  -H 'X-Vault-Token: $client_token'`
echo "apikey"

1 Ответ

0 голосов
/ 25 февраля 2019

Вероятно, ваша jq команда выводит кавычки, которые вам не нужны.Вместо этого спросите jq для необработанного значения:

client_token=`echo $XVaultToken|jq -r '.auth.client_token'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...